У меня странная проблема. рассмотрим этот короткий код:
<?php $reg = '/(?<!\pL)(test)(?!\pL)/u'; $text='This is a test text'; $replace = 'test_replaced'; $newtext = preg_replace($reg, $replace, $text); echo "Error: ".preg_last_error()."\nResult: ".$newtext."\n"; ?> 
На некоторых серверах соответствие границ UTF8 не работает. я получил
 Error: 0 Result: 
На большинстве серверов все работает нормально:
 Error: 0 Result: This is a test_replaced text 
  Проблема, по-видимому, связана с границей слов, когда я использую \b а код работает. 
Оба сервера используют php 5.2.13. Какие-нибудь подсказки, что может быть неправильно и как обойти это?
  Комментарий здесь, кажется, предполагает, что PCRE необходимо скомпилировать с помощью --enable-unicode-properties .