¿Si sabes que las expresiones regulares tienen sus propias reglas y es considerado un lenguaje independiente?
Te invito a visitar el sub-foro de RegExp por si tienes más dudas, te explico:
1. Los cuantificadores * están mal, porque significan cero o más, y sin usar anclas (^$) básicamente no se extiende más allá, es decir: no es
greedy
2. Igual te hace falta el modificador "u" para que acepte todo como Unicode, eso es básico si tratas de usar meta-agrupadores tipo \p*
Así ya funciona mejor:
Código PHP:
Ver original$k = '"aquí cualquier cantidad de caracteres con o sín especiales ñáú..."';
$x = '(\w+)';
$x = '[\w\pL ]+';
$x = '\w+';
La solución consiste básicamente en usar + que significa uno o más, además sí es
greedy e intentará "comer" tanto como alcance la expresión.
Además con el modificador "u" nos aseguramos de "entender" Unicode, un requerimiento básico a estas alturas.
Otro error común es colocar los cuantificadores fuera de los paréntesis: jamás debes hacerlo.
Lo correcto primero es cuantificar y agrupar, el último paso sería capturar.