Código:
$cadena1 = "mi opiniooooon es que lo que no come lo bota";
$patron="/opini[\w\W]+n/";
echo "Resultado:".preg_replace($patron,"OPINION",$cadena1);
Como se observa el patron me debe permitir capturar la palabra 'opiniooooon' y reemplazarlo por 'OPINION' (en mayusculas), lo cual es correcto.
El resultado es: mi OPINION es que lo que no come lo bota --- (OK)
Si la cadena cambia a "mi opiniooooon es que lo que no comen lo bota" (observese la letra 'n' de la palabra 'comen'), el resultado es: mi OPINION lo bota --- (Incorrecto),
De lo que deduzco que el patron hace que busque desde 'opini' hasta 'n' pero la 'n' de la palabra 'comen' y todo eso se reemplaza por OPINION y sigue el resto de la cadena.
Pregunta: ¿Como hacer para que el patron reconozca solo aquella palabra donde haga un match o una coincidencia?
Espero haberme explicado y desde ya gracias.