Я это RegEx для сопоставления пробелов в Unicode:
/^[\pZ\pC]+|[\pZ\pC]+$/u
Я даже не уверен в том, что он делает, но, кажется, работаетТеперь, в этом случае, какая функция применяется лучше и почему?
$str = preg_replace('/^[\pZ\pC]+|[\pZ\pC]+$/u', '', $str);
или
$str = mb_ereg_replace('/^[\pZ\pC]+|[\pZ\pC]+$/u', '', $str);