sig
  type t
  type result
  external matches : Js_re.result -> string array = "%identity"
  external index : Js_re.result -> int = "" "BS-EXTERNAL"
  external input : Js_re.result -> string = "" "BS-EXTERNAL"
  external fromString : string -> Js_re.t = "RegExp" "BS-EXTERNAL"
  external fromStringWithFlags : string -> flags:string -> Js_re.t = "RegExp"
    "BS-EXTERNAL"
  external flags : Js_re.t -> string = "" "BS-EXTERNAL"
  external global : Js_re.t -> bool = "" "BS-EXTERNAL"
  external ignoreCase : Js_re.t -> bool = "" "BS-EXTERNAL"
  external lastIndex : Js_re.t -> int = "" "BS-EXTERNAL"
  external setLastIndex : Js_re.t -> int -> unit = "lastIndex" "BS-EXTERNAL"
  external multiline : Js_re.t -> bool = "" "BS-EXTERNAL"
  external source : Js_re.t -> string = "" "BS-EXTERNAL"
  external sticky : Js_re.t -> bool = "" "BS-EXTERNAL"
  external unicode : Js_re.t -> bool = "" "BS-EXTERNAL"
  external exec : string -> Js_re.t -> Js_re.result option = "" "BS-EXTERNAL"
  external test : string -> Js_re.t -> bool = "" "BS-EXTERNAL"
end