Grazie per la risposta,
ho provato ma non funziona o meglio funziona esattamente come str_ireplace() perchè l'espressione ("/($stringa1)/i", effettua la sostituzione in tutto il testo ma non rispetta le maiuscole/minuscole del testo originale.

Conosci quali sono i parametri da includere nell'espressione regolare per dire alla funzione preg_replace() di lasciare inalterate le maiuscole/minuscole?

p.s.
nel tua indicazione avevi scritto per sbaglio $1 al posto di $stringa1, almeno così ho inteso e la prova l'ho fatta su:

$testo = preg_replace("/($stringa1)/i", '<span style="background-color: #CCFF99">'.$stringa1.'</span>', $testo);


Grazie