preg_match () Modificador desconocido ‘[‘ help

Tengo esta expresión regular para obtener la identificación de video de YouTube:

(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+ 

Lo entiendo de allí: Regex para analizar youtube yid

El problema es que obtengo preg_match() Unknown modifier '[' advertencia.

Sé que tengo que adjuntar los delimitadores de expresiones regulares, pero no tengo idea de cómo hacer esto.

¿Alguna ayuda?

Pruebe lo siguiente:

  

Tenga en cuenta que estoy usando # como delimitador aquí simplemente porque la expresión regular anterior contiene barras diagonales y escapándolos hace que la expresión sea más difícil de leer. Esto lo limpia solo unos pocos píxeles.

Mi RegEx estaba siguiendo:

[A-Za-z] {3} \ d {4} [A-Za-z] {4}

Y lo puse de la siguiente manera:

 if (!preg_match("[A-Za-z]{3}\d{4}[A-Za-z]{4}", trim($search_query))) { return false; } 

Pero me devolvió la siguiente advertencia:

Se ha encontrado un error PHP

Gravedad: Mensaje de advertencia: preg_match (): modificador desconocido ‘{‘ Nombre de archivo: modelos / room_reservation_model.php Número de línea: 61

Luego noté en parte de eso del siguiente enlace que pusieron el patrón RegEx dentro de dos “/” de la siguiente manera:

 $name = test_input($_POST["name"]); if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "Only letters and white space allowed"; } 

Así que también puse esos dos “/” antes y después de mi patrón RgeEx de la siguiente manera y el problema se resolvió:

 if (!preg_match("/[A-Za-z]{3}\d{4}[A-Za-z]{4}/", trim($search_query))) { return false; }