Можно задать правило чтобы подсветка была только в span теге, но это сработает только для одного слова либо более 2х но в том же порядке что и ключевик.
$c = preg_replace("/span>.*?(game).*?<\/span/i", "<b>$0</b>", $c);
Поиграть можно здесь:
https://regex101.com/r/bW4gQ3/1
Но так как вы делаете не совсем верно, у вас содержимое в SPAN теге все равно подставляется заранее, так ведь? так вот делать замену нужно на том этапе.
Если у вас поиск осуществляется средствами Sphinx, тогда можете выполнить конструкцию call snippets, она сама подсветит нужные участки по заданым правилам.