Improved regexp function and fix replace-first behavior.

replace-first behavior was inherited from clojure.string and
is broken, because if it receives a regex with global flag
as true, it does not respects the contract of replace only
first occurence.

The replace-first of string.clj works properly and respects
the contract independently of global flag of regexp instance.