php email regex



What is wrong with this regex?

function validateEmail($email){
if (eregi("^([a-z]|[0-9]|\.|-|_)+@([a-z]|[0-9]|\.|-|_)+\.([a-z]|[0-9]){2,3}$", $email, $arr_vars) &&

!eregi("(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)", $email, $arr_vars)){
return true;

}else{
return false;
}
}

When used:

$email = "hello@hello.info";
if (validateEmail($email) != 1){
//show error
}

It returns false and shows an error, whats wrong?