sig
  type t
  val create : string -> Core_string.Search_pattern.t
  val index :
    ?pos:int -> Core_string.Search_pattern.t -> in_:string -> int option
  val index_exn :
    ?pos:int -> Core_string.Search_pattern.t -> in_:string -> int
  val index_all :
    Core_string.Search_pattern.t ->
    may_overlap:bool -> in_:string -> int list
  val replace_first :
    ?pos:int ->
    Core_string.Search_pattern.t -> in_:string -> with_:string -> string
  val replace_all :
    Core_string.Search_pattern.t -> in_:string -> with_:string -> string
  val sexp_of_t : Core_string.Search_pattern.t -> Sexplib.Sexp.t
end