In diesem Fall muss preg_match_all aber in jedem Fall zweimal ausgeführt werden, beim Auswerten der Fehlermeldung im Idealfall einmal, ansonsten zweimal.
So geht's auch und erfüllt seinen Zweck - wenn nun der Fehler aber einen anderen Grund hat als die fehlenden Unicode-Properties, wird trotzdem der Fallback verwandt.
if(@preg_match_all('/\p{L}+/u', $str, $arr) === false) {
preg_match_all('/\w+/u', $str, $arr);
}
Das ist zwar richtig, jedoch räkelt sich seit der Version 5.3 die Anbindung an die PCRE-lib eh im stack 'rum...
Das Script muss leider auch auf älteren Schinken laufen - vorrangig PHP 5.1.x auf RHEL und CentOS :)