Der står noget her om at \w kun matcher [A-Za-z0-9_]:
http://blog.stevenlevithan.com/archives/javascript-regex-and-unicodeDet ligner en e-mail validering du prøver at lave, men du accepterer kun at tld'er er bogstaver fra a-z (og hvis de skriver med store bogstaver virker det slet ikke). Du accepterer f.eks. ikke at .рф kan være en endelse i e-mail adressen.
http://en.wikipedia.org/wiki/.%D1%80%D1%84Når det engang bliver tilladt at registrere et tld som kan være på mere end 6 bogstaver (f.eks. .microsoft), så virker det heller ikke.
Og da du alligevel ikke kan kontrollere om folk indtaster en e-mail adresse der rent faktisk eksisterer, så ville det være nemmere bare at matche e-mail adresser på .+@.+
Det er lidt ligesom at prøve at validere fornavn/efternavn. Det er bedre at lade være. :)
http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/