There are myriads of problems with that e-mail validation regexp. For example, it won't pass any of perfectly valid modern national TLDs and it honestly thinks that TLD has maximum 4 letters in it. It doesn't allow arbitrary number of dots .
in user account part, it doesn't allow pluses +
, etc.
Generally, a good practice of validating e-mails boils down to:
- Minimal validation - just check that there's
@
there and that's all.
- Just send that e-mail - don't check anything else. If it will be sent - then it's indeed a valid e-mail.
For more details, take a look at http://davidcel.is/blog/2012/09/06/stop-validating-email-addresses-with-regex/ or any similar articles.