/
^ (?&address) $
(?(DEFINE)
  (?<ALPHANUMERICE> 
    [A-Za-z0-9!\#$%&'*+\-\/=?^_`{|}~]
  )
  (?<CFWS> 
    (?: 
      (?: (?&FWS)? (?&comment) )++ 
      (?&FWS)?
    ) 
    | (?&FWS) 
  )
  (?<FWS> (?&WSPCRLF)++ )
  (?<UTF8_extra_char> 
    (?=[\x{C2}-\x{DF}\x{E0}-\x{EF}\x{F0}-\x{F4}]) 
    (?: (?&UTF8_2) | (?&UTF8_3) | (?&UTF8_4) ) 
  )
  (?<UTF8_tail> [\x{80}-\x{BF}] )
  (?<UTF8_2> [\x{C2}-\x{DF}] (?&UTF8_tail) )
  (?<UTF8_3> \x{E0} [\x{A0}-\x{BF}] (?&UTF8_tail)
    | [\x{E1}-\x{EC}] (?&UTF8_tail){2} 
    | \x{ED} [\x{80}-\x{9F}] (?&UTF8_tail) 
    | [\x{EE}\x{EF}] (?&UTF8_tail){2}
  )
  (?<UTF8_4> \x{F0} [\x{90}-\x{BF}] (?&UTF8_tail){2}
    | [\x{F1}-\x{F3}] (?&UTF8_tail){3}
    | \x{F4} [\x{80}-\x{8F}] (?&UTF8_tail){2}
  )
  (?<VCHARWSP> [\x{21}-\x{7E}\ \t] )
  (?<WSPCRLF> [\ \t\x{0D}\x{0A}] )
  (?<address> (?&mailbox_list) | (?&group) )
  (?<addr_spec> (?&local_part) @ (?&domain) )
  (?<utf8_addr_spec> 
    (?&utf8_local_part) @ (?&utf8_domain) 
  )
  (?<alt_address> (?&FWS) < (?&addr_spec) > )
  (?<angle_addr> (?&CFWS)? < 
    (?: (?&addr_spec) 
      | (?&utf8_addr_spec) (?&alt_address)? 
      | (?&obs_route)? (?&addr_spec) 
    ) 
    > (?&CFWS)? 
  )
  (?<atext> (?&ALPHANUMERICE) )
  (?<utf8_atext> 
    (?&ALPHANUMERICE) 
    | (?&UTF8_extra_char) 
  )
  (?<atom> (?&CFWS)? (?&atext)++ (?&CFWS)? )
  (?<utf8_atom> 
    (?&CFWS)? (?&utf8_atext)++ (?&CFWS)? 
  )
  (?<utf8_ccontent> 
    (?&ctext) 
    | (?&utf8_quoted_pair) 
    | (?&comment) 
  )
  (?<comment> 
    \( 
      (?: 
        (?&FWS)? (?&utf8_ccontent) 
      )*+ 
      (?&FWS)? 
    \) 
  )
  (?<ctext> 
    [!-'*-\[\]-~] 
    | (?&obs_ctext) 
    | (?&UTF8_extra_char) 
  )
  (?<display_name> (?&phrase) )
  (?<domain> 
    (?&dot_atom) 
    | (?&domain_literal) 
    | (?&obs_domain) 
  )
  (?<utf8_domain> 
    (?&utf8_dot_atom) 
    | (?&domain_literal) 
    | (?&obs_domain) 
  )
  (?<domain_literal> 
    (?&CFWS)? 
    \[ 
      (?: (?&FWS)? (?&dtext) )*+ 
      (?&FWS)? 
    \] 
    (?&CFWS)? 
  )
  (?<dot_atom> 
    (?&CFWS)? (?&dot_atom_text) (?&CFWS)? 
  )
  (?<utf8_dot_atom> 
    (?&CFWS)? (?&utf8_dot_atom_text) (?&CFWS)? 
  )
  (?<dot_atom_text>