... and ignoring case obviously gets us down here:
^[a-z]([a-z]+|\d+)@[a-z]+\.[a-z]+$ ^[a-z]([a-z]+|\d+)@[a-z]+\.[a-z]+$ pat = re.compile(r'^ [a-z] [a-z0-9]* @ [a-z]+ \. [a-z]+ $', re.I | re.X)
I took a few liberties in crafting the reduction.