sig
type regexp
val regexp : string -> Str.regexp
val regexp_case_fold : string -> Str.regexp
val quote : string -> string
val regexp_string : string -> Str.regexp
val regexp_string_case_fold : string -> Str.regexp
external string_match : pat:Str.regexp -> string -> pos:int -> bool
= "str_string_match"
external search_forward : pat:Str.regexp -> string -> pos:int -> int
= "str_search_forward"
external search_backward : pat:Str.regexp -> string -> pos:int -> int
= "str_search_backward"
external string_partial_match : pat:Str.regexp -> string -> pos:int -> bool
= "str_string_partial_match"
val matched_string : string -> string
val match_beginning : unit -> int
val match_end : unit -> int
val matched_group : int -> string -> string
val group_beginning : int -> int
val group_end : int -> int
val global_replace : pat:Str.regexp -> templ:string -> string -> string
val replace_first : pat:Str.regexp -> templ:string -> string -> string
val global_substitute :
pat:Str.regexp -> subst:(string -> string) -> string -> string
val substitute_first :
pat:Str.regexp -> subst:(string -> string) -> string -> string
val replace_matched : templ:string -> string -> string
val split : sep:Str.regexp -> string -> string list
val bounded_split : sep:Str.regexp -> string -> max:int -> string list
val split_delim : sep:Str.regexp -> string -> string list
val bounded_split_delim :
sep:Str.regexp -> string -> max:int -> string list
type split_result = Text of string | Delim of string
val full_split : sep:Str.regexp -> string -> Str.split_result list
val bounded_full_split :
sep:Str.regexp -> string -> int -> Str.split_result list
val string_before : string -> int -> string
val string_after : string -> int -> string
val first_chars : string -> len:int -> string
val last_chars : string -> len:int -> string
end