No, non avevo scritto $1 per sbaglio, pero' avevo commesso un errore stupido.
Versione funzionante:
Codice PHP:
$testo = "frase che contiene la PaRoLa da cercare";
$stringa = "parola";
$testo = preg_replace("/($stringa)/i", '[b]<span style="background-color: #CCFF99">$1</span>[/b]', $testo);
echo $testo;