Regarding [1], in the favour of regexps:
http://en.wikipedia.org/wiki/Regular_language
If you can't use a regexp to recognize the general case of email addresses, no finite automaton can..
If you can't use a regexp to recognize the general case of email addresses, no finite automaton can..
This is what a proper email-validation regexp looks like: http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html