Error de expresión regular: sin delimitador final

Estoy tratando de ejecutar esta expresión regular:

 

Pero sigue obteniendo un error:

 Warning: preg_match() [function.preg-match]: No ending delimiter '/' found in /var/www/preg.php on line 6 

No puedo entender de dónde viene. Tengo un delímetro final allí … Traté de cambiar el delimitador a otros símbolos y no ayudó.

Agradecería su ayuda en este problema.

Como dijo Gumbo , preg_match no es binario seguro.

Use en su lugar:

 preg_match("/^([^\\x{00}-\\x{1F}]+?){0,1}/", 'test string')); 

Esta es la forma correcta de especificar puntos de código Unicode en PCRE.

Supongo que PHP ahoga el carácter NULL que denota el final de una cadena en C.

Pruébelo con comillas simples para que \x00 sea ​​interpretado por el motor PCRE y no por PHP:

 '/^([^\x00-\x1F]+?){0,1}/' 

Parece que este es un error ya conocido (ver Problemas con cadenas que contienen \ x00 ).

No estoy seguro acerca de php, pero tal vez el problema es que necesitas escapar de tus tabs inversas? prueba "/^([^\\x00-\\x1F]+?){0,1}/"