Похоже, в $word
есть некоторые специальные символы, используемые в синтаксисе регулярных выражений. Ваш $word
содержит один из следующих символов: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : - #
. Вы должны процитировать эти символы, используя preg_quote
:
preg_match_all('/'.preg_quote($word).'/i', $text, $matches);