Emails addresses are more complicated than that: they can contain spaces and "@"s so a basic validation can be fraught with problems. Especially since "." is a special character in regexes meaning "match anything at all" ...
This is the email address validator that Expresso suggests:
([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})
But I would suggest that validating emails is a waste of time: send a confirmation email to the address they provided and get them to click the link before they can go any further. That way, not only do you validate the email address, but you confirm that it's live and genuine at the same time.
a@b.com
is a valid email address, but nobody lives there ...
If you are going to work with Regexes, then get a copy of
Expresso[
^] - it's free, and it examines and generates Regular expressions as well as provide useful examples.