What we use is:
^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$
It covers more than 98% of the eMail addresses we get. Note that we're using word not literal alphanumeric. Also, we're checking it as case insensitive to take care of the people that don't know that all eMail addresses are currently lower case.
The length restriction is because of our database. We can't handle the longer addresses.
commented on Jul 5 2012 12:10PM