El detalle con las expresiones regulares es que te permiten una flexibilidad enorme a la hora de buscar patrones especificos de tal forma que puede haber mas de una forma de abordar el problema con ellas, ademas de lo tipico que pueden ser mas lentas que otras soluciones pero hay ya es cuestion de cada quiien y de los detalles de problema.
A hora supongamos que item n es equivalente a tener cualquier caracater alfanumerico y especial como unica condicion entonces con preg_replace se puede solucionar sencillo (preg_replace por que me gusto de momento pero se puede usar ereg_replace)
Código PHP:
$str = "[*]xxxx_yyyy 123[*]xxxx_[222] 123[*] ssss aaaaa @@@";
echo preg_replace("/\\[\\*\\](.+)/", "<i>\\\\1</i>", $str);
Como lo comente esta puede ser una forma igual el incio del patron puede representarse de otra forma.