podrías optimizar un poco esas expresiones
ejemplo, en lugar de [ ] (un espacio) usar \s
en cuanto a +
si tienes una cifra exacta de la longitud de los números devueltos seria ideal usar {1,$max}
en cuanto a tu error de " [ " puede que sea por dejarlo vació con un espacio..
también recuerda que preg_match devuelve un numero o false si es error..
podrías compararlo así > 0
dame un par de minutos, y hago algunas pruebas con tu expresión.
esto me funciona..
Código PHP:
$txt = "limit 1, 20";
echo (preg_match("/limit\s+[0-9]+(\,\s*[0-9]+)?/", $txt) > 0)? "si": "no";
en cuanto a los demás errores, pateketrueke creo que tiene razón sobre las comillas