В общем такая вот тема у меня получилась:
Это код который я по-всякому мучал
preg_match_all('#\bпхп|php\b#', 'пхп php', $m);
просто без лакалей и модификаторов (по умолчанию система работает с UTF-8 скрипт сохранен тоже в UTF-8)
var_dump($m) -> array(1) { [0]=> array(1) { [0]=> string(3) "php" } }
теперь ставим модификатор u
var_dump($m) -> array(1) { [0]=> array(1) { [0]=> string(3) "php" } }
Добавляем
setlocale(LC_ALL, array('ru_RU.cp1251'));
и убираем модификатор u
в результате получаем что хотели
var_dump($m) -> array(1) { [0]=> array(2) { [0]=> string(6) "пхп" [1]=> string(3) "php" } }
только смущает string(6) «пхп» это ведь в UTF так должно быть
потом решил по мучать регистры, потому что это тоже важно, ни в какую не работает ПХП от пхп и Пхп не видит точнее не то что не отличает, просто перестает работать регулярка (((