Recipe 6.19, "Matching a Valid Mail Address", in
The Perl Cookbook gives a broader coverage of this topic and is well worth a read. In it, Tom Christiansen refers to his attempt at a regular expression (while admitting that it's less than perfect) which can be found in his script,
ckaddr.
It is based on a regular expression in Recipe 18.9 of
Mastering Regular Expressions.
All of this proves (to me at least) just how tricky matching an email address really is.