Here's two improvements to your regex:
You should use eregi() instead of ereg(), or else add 'A-Z' to the patter
itself. The domain name system is not case sensitive.
The regex as written does not require any dots in the host name. It curently says (following the at-sign):
one or more letters, numbers, or dashes
followed by
zero or more letters, numbers, or dashes
This correctly passes any valid host name, but it doesn't reject
addresses of the form
godot@nowhere
Just change that trailing start to a plus and you're fine.