perform-replace
    
    perform-replace is a compiled Lisp function in `replace.el'.
(perform-replace FROM-STRING REPLACEMENTS QUERY-FLAG REGEXP-FLAG DELIMITED-FLAG &optional REPEAT-COUNT MAP START END BACKWARD)
Subroutine of `query-replace'.  Its complexity handles interactive queries.
Don't use this in your own program unless you want to query and set the mark
just as `query-replace' does.  Instead, write a simple loop like this:
  (while (re-search-forward "foo[ \t]+bar" nil t)
    (replace-match "foobar" nil nil))
which will run faster and probably do exactly what you want.  Please
see the documentation of `replace-match' to find out how to simulate
`case-replace'.
This function returns nil if and only if there were no matches to
make, or the user didn't cancel the call.