What's this kind of coding?

I’ve been messing around with a function I found that’s designed to validate e-mail addresses through the RFC 822 standard.

Here it is:

	function is_rfc822_valid_email_address($email){
		$qtext = '[^\\\\x0d\\\\x22\\\\x5c\\\\x80-\\\\xff]';
		$dtext = '[^\\\\x0d\\\\x5b-\\\\x5d\\\\x80-\\\\xff]';
		$atom = '[^\\\\x00-\\\\x20\\\\x22\\\\x28\\\\x29\\\\x2c\\\\x2e\\\\x3a-\\\\x3c'.'\\\\x3e\\\\x40\\\\x5b-\\\\x5d\\\\x7f-\\\\xff]+';
		$quoted_pair = '\\\\x5c[\\\\x00-\\\\x7f]';
		$domain_literal = "\\\\x5b($dtext|$quoted_pair)*\\\\x5d";
		$quoted_string = "\\\\x22($qtext|$quoted_pair)*\\\\x22";
		$domain_ref = $atom;
		$sub_domain = "($domain_ref|$domain_literal)";
		$word = "($atom|$quoted_string)";
		$domain = "$sub_domain(\\\\x2e$sub_domain)*";
		$local_part = "$word(\\\\x2e$word)*";
		$addr_spec = "$local_part\\\\x40$domain";
		return preg_match("!^$addr_spec$!", $email) ? 1 : 0;

I’m curious about the coding that’s being used within the regex patterns. For example, I know that “x22” or “x5d” isn’t HEX. …or is it?

What’s that code?

It seems to be the hex value for ASCII characters.

Ahhh… Wow, I feel pretty lame right now. Hehe. I guess I forgot to remove the ‘x’ when inputting it into a converter. :slight_smile:

Thanks StarLion.