Here's why:
The last set of parenthesis contains this: .[a-z] That means a period, followed by one lowercase letter a-z. Basically, it will check like this:
one or more a-z, A-Z, 0-9 or _
followed by one or more @,a-z,A-Z or - (including more than one @)
followed by a period and then one a-z.
Not sure what the ^ is doing at the end - bet you meant $.
Also, since it is not a regex based on the RFC, and will disallow a fair number of email addresses, you might want to look into using something different.