tl;dr:There's are lots of nuances validating addresses that are not accounted for. Jan highlights 13 examples, such as email addresses can contain multiple @s, punctuation character are allowed, bang paths can be accepted, the percent sign may lead to relaying, and more.
tl;dr:Jan compiled a list of recommendations for writing readable and robust code after grading his students' work, including (1) "Don't write the damn code in the first place." (2) "Use descriptive variable and function names. You are not charged per character, and vowels don't cost extra."