regex is EXTREMELY powerful.
it allows you to define a character set... char sets are defined between []. check the php manual for detailed description.
function isEmail( $strIn ) {
$strIn = preg_replace( "/[^\x20-\xFF]/", "" , @strval( $strIn ) );
if ( !trim( $strIn ) || !preg_match( "/^[a-z0-9._-]{1,20}@(([a-z0-9-]+\.)+(com|net|org|mil|edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$/is", $strIn ) ) return 0;
return $strIn;
}
something like that will match most emails, returning TRUE if it's a valid email. you can change it up to suit your needs.