RegEx de PHP: encuentra vulnerabilidad dentro del patrón de validación de correo electrónico

El siguiente patrón de expresiones regulares (para PHP) está destinado a validar cualquier dirección de correo electrónico:

^[\w.-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}$ 

Dice: “coincide con al menos una (o más) letras mayúsculas y minúsculas, y / o puntos, guiones bajos y guiones seguidos por uno y solo un @ seguido de al menos uno (o más) de letras mayúsculas y minúsculas, y / o puntos, y / o guiones bajos seguidos de uno y solo un período seguido de dos a seis letras mayúsculas y minúsculas .

Esto parece coincidir con cualquier dirección de correo electrónico que se me ocurra. Aún así, esta sensación de hacerlo bien es probablemente engañosa. ¿Alguien con conocimiento puede señalar una vulnerabilidad obvia o no tan obvia en este patrón de la que no tengo conocimiento, lo que haría que no realice la validación del correo electrónico de la forma en que debe hacerlo?

(Para prever una posible respuesta, soy consciente de que la función filter_var () ofrece una solución más robusta, pero estoy específicamente interesado en la expresión regular en este caso).

NOTA: esta es una pregunta teórica sobre el sabor PHP de expresiones regulares, NO una pregunta práctica sobre la validación de correos electrónicos. Simplemente quiero determinar las limitaciones de lo que es razonablemente posible con expresiones regulares en este caso.

¡Gracias de antemano!

Usar expresiones regulares para validar correos electrónicos es complicado

Pruebe el siguiente correo electrónico como una entrada a su expresión regular, es decir: ^[\w.-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}$

abc@b...com

Puede leer más sobre la validación de expresiones regulares de correo electrónico en http://www.regular-expressions.info/email.html

Si está haciendo esto para una aplicación, utilice la validación de correo electrónico enviando un correo electrónico a la dirección provista en lugar de usar una expresión regular muy compleja.

La especificación de la dirección de correo electrónico es bastante chiflada. Hay expresiones regulares por ahí que pueden hacer una validación completa de ellas, pero tienen miles de caracteres de largo. Puede ser mejor analizarlo por su cuenta, pero PHP tiene un validador incorporado para las direcciones de correo electrónico:

 filter_var($email, FILTER_VALIDATE_EMAIL); 

EDITAR:

En respuesta a su pregunta específica de una dirección de correo electrónico que fallará, cualquiera que tenga el nombre del correo electrónico entre comillas lo hará porque no cuenta para nada:

 "explosion-pills"@aysites.com