sig
  type t
  type result
  external matches : Js_re.result -> string array = "%identity"
  external index : Js_re.result -> int = ""
    "BS:1.7.0„•¦¾°  B‘@@@˜%index"
  external input : Js_re.result -> string = ""
    "BS:1.7.0„•¦¾°  B‘@@@˜%input"
  external fromString : string -> Js_re.t = "RegExp"
    "BS:1.7.0„•¦¾°  B‘@@@–°&RegExp@@"
  external fromStringWithFlags : string -> flags:string -> Js_re.t = "RegExp"
    "BS:1.7.0„•¦¾ !°  B‘@  B %flags@@@–°&RegExp@@"
  external flags : Js_re.t -> string = ""
    "BS:1.7.0„•¦¾°  B‘@@@˜%flags"
  external global : Js_re.t -> bool = ""
    "BS:1.7.0„•¦¾°  B‘@@E˜&global"
  external ignoreCase : Js_re.t -> bool = ""
    "BS:1.7.0„•¦¾°  B‘@@E˜*ignoreCase"
  external lastIndex : Js_re.t -> int = ""
    "BS:1.7.0„•¦¾°  B‘@@@˜)lastIndex"
  external multiline : Js_re.t -> bool = ""
    "BS:1.7.0„•¦¾°  B‘@@E˜)multiline"
  external source : Js_re.t -> string = ""
    "BS:1.7.0„•¦¾°  B‘@@@˜&source"
  external sticky : Js_re.t -> bool = ""
    "BS:1.7.0„•¦¾°  B‘@@E˜&sticky"
  external unicode : Js_re.t -> bool = ""
    "BS:1.7.0„•¦¾°  B‘@@E˜'unicode"
  external exec : string -> Js_re.t -> Js_re.result option = ""
    "BS:1.7.0„•¦¾        °  B‘@  B@C•°$exec@A"
  external test : string -> Js_re.t -> bool = ""
    "BS:1.7.0„•¦¾        °  B‘@  B@E•°$test@A"
end