preg_replace or mb_ereg_replace in this case?

I have this RegEx for matching whitespace in Unicode:


I'm not even sure of what it does, but it seems to work. Now, in this case, which function applies better and why?

$str = preg_replace('/^[\pZ\pC]+|[\pZ\pC]+$/u', '', $str);


$str = mb_ereg_replace('/^[\pZ\pC]+|[\pZ\pC]+$/u', '', $str);


  • The first one works. The second one doesn't.

    Tried it out again, mb_ereg_replace doesn't actually support those Unicode char escapes. And it doesn't use regex delimiters. (See Oniguruma)

    preg_replace uses the PCRE regex engine, which supports both.

    Anyway, there is no such thing as a "better" application. It's either functioning, or not.