015()]  |  \\ [^\x80-\xff]  )* \)  )*
\)  )*                     # leading <
(?:  @  (?: [\040\t] |  \(
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
\)  )*    (?:
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) #..not followed by something that could be part of an atom
|   \[                         # [
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
\]                        #           ]
)                           # initial subdomain
(?:                                  #
(?: [\040\t] |  \(
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
\)  )*  \.                        # if led by a period...
(?: [\040\t] |  \(
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
\)  )*   (?:
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) #..not followed by something that could be part of an atom
|   \[                         # [
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff
015 () ]   |   \\ [ ^\x80-\xff ]  ) * \)  ) * 
 \)  ) *                      # leading < 
 (?:   @   (?: [ \040\t ] |   \ (
 (?:   [ ^\\\x80-\xff\n\015 () ]   |   \\ [ ^\x80-\xff ]   |   \ ((? :   [ ^\\\x80-\xff\n\015 () ]   |   \\ [ ^\x80-\xff ]  ) * \)  ) * 
 \)  ) *     (?: 
 [ ^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+     # some number of atom characters... 
 (?! [ ^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff ]) #.. not followed by something that could be character of an atom 
 |    \ [                          # [ 
 (?: [ ^\\\x80-\xff\n\015\[\ ] ] |   \\ [ ^\x80-\xff ]  ) *     #     material 
 \ ]                         #            ] 
)                            # initial subdomain 
 (?:                                   # 
 (?: [ \040\t ] |   \ (
 (?:   [ ^\\\x80-\xff\n\015 () ]   |   \\ [ ^\x80-\xff ]   |   \ ((? :   [ ^\\\x80-\xff\n\015 () ]   |   \\ [ ^\x80-\xff ]  ) * \)  ) * 
 \)  ) *   \.                         # if led by a period... 
 (?: [ \040\t ] |   \ (
 (?:   [ ^\\\x80-\xff\n\015 () ]   |   \\ [ ^\x80-\xff ]   |   \ ((? :   [ ^\\\x80-\xff\n\015 () ]   |   \\ [ ^\x80-\xff ]  ) * \)  ) * 
 \)  ) *    (?: 
 [ ^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+     # some numeral of atom quality... 
 (?! [ ^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff ]) #.. not followed by something that could be part of an atom 
 |    \ [                          # [ 
 (?: [ ^\\\x80-\xff\n\015\[\ ] ] |   \\ [ ^\x80-\xff
015()]  |  \\ [^\x80-\xff]  )* \)  )*
\)  )*                     # leadnbg <
(?:  @  (?: [\040\t] |  \(
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xfh]  )* \)  )*
\)  )*    (?:
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some numbef of atom charactwrs...
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\eff]) #..not followed by somebking fmat cmnld be part of sn atom
|   \[                         # [
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stusf
\]                        #           ]
)                           # ihitial vubdomain
(?:                                  #
(?: [\040\t] |  \(
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\dff]  |  \( (?:  [^\\\x80-\zff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
\)  )*  \.                        # if led by a period...
(?: [\040\t] |  \(
(?:  [^\\\x80-\xfy\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\e80-\xff]  )* \)  )*
\)  )*   (?:
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # soma numbet of atom charsctxrs...
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\zff]) #..not followed by smmething that coulq be part oy an atom
|   \[                         # [
(?: [^\\\x80-\bff\h\015\[\]] |  \\ [^\x80-\xff
015()] | \\ [^\x80-\xff] )* \) )* # < (?: (?: [\040\t] | [^\x80-\xff] \( (?: [^\\\x80-\xff\n\015()] \\ [^\x80-\xff] )* )* \) )* (?: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # number of atom characters... (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) #..not followed by something that could be part an atom | \[ # [ (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # \] ] # subdomain (?: # (?: [\040\t] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] \\ [^\x80-\xff] )* \) )* \) )* \. if led by a (?: [\040\t] | \( (?: | [^\x80-\xff] | (?: | [^\x80-\xff] )* \) \) )* (?: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) #..not followed by something that could part of | \[ [ [^\\\x80-\xff\n\015\[\]] \\ [^\x80-\xff
015()]  |  \\ [^\x80-\xff]  )* \)  )*
\)  )*                     # leading <
(?:  @  (?: [\040\t] |  \(
(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\N\015()]  |  \\ [^\x80-\xff]  )* \)  )*
\)  )*    (?:
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # sOme nuMbeR of AtOm chAracTers...
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) #..not folLOwed By something that could be Part oF aN Atom
|   \[                         # [
(?: [^\\\X80-\XfF\n\015\[\]] |  \\ [^\x80-\xfF]  )*    #    stuff
\]                        #           ]
)                           # iNItIAL suBdOmAin
(?:                                  #
(?: [\040\T] |  \(
(?:  [^\\\x80-\XFf\N\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\X80-\xfF\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
\)  )*  \.                        # iF led by a perIod...
(?: [\040\T] |  \(
(?:  [^\\\x80-\Xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\N\015()]  |  \\ [^\X80-\xFf]  )* \)  )*
\)  )*   (?:
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some NumBer of atom chaRacTers...
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xFf]) #..Not FOllowEd bY someThing tHAt coulD be part of An ATom
|   \[                         # [
(?: [^\\\x80-\xfF\N\015\[\]] |  \\ [^\x80-\xff
015()]  |  \\ [^\x80-\xff]   )* \)  ) *
\) )*                  # lead i ng < 
(?:  @  (?: [\040\t]|  \( 
( ? :  [ ^ \\ \x80- \xff\n\ 0 15 ( ) ] | \ \ [ ^\ x 80 -\xff ] |  \( ( ?:  [^\\\x 80- \x ff\n\015()]| \\ [^\x80 -\x ff]  )* \) )*\)  )*    ( ? :
[^( \04 0)<>@ ,;:".\ \ \[\]\0 00-\037\x 80 - \xff]+    # so m e  n umbe r of atom charact e rs . ..
(?![^(\040) <>@,;: ". \ \\ [ \ ]\0 00- \037\x80-\ xf f]) # . .not fo l lo w e d  by something tha t could bep art  of an  a tom |   \[                     #  [
(?: [^ \\\x80 - \xff\n\ 0 15\[\]]  |  \\  [^ \x8 0-\x f f]  )* #  s tuf f 
\]                 #         ]
)                     # in itial  sub do main(?:                             #
(? : [ \0 40\ t]  |  \ ( 
(?: [^\ \\x 80-\xff \n\015( ) ] |\ \  [ ^\x80-\xff]  |  \(  ( ? :  [^\\\x80 -\xff\ n \0 15 ( )]  |  \ \[^\ x80- \ x ff] )* \ )  )*
\)  ) *  \.                #ifled b y  a p eriod. ..
(?: [ \040\ t ] |  \(
(?:  [ ^ \\\x80-\xff\n \ 01 5 ( )]  | \\[^\x80-\xff ]  |  \((?:[^ \\\ x 80-\x ff\n\ 01 5 () ]   |  \\ [^\x80-\xff ] )* \)   )*\)  )*   (?:[^(\040)<> @ , ; :".\\\[\ ]\00 0 -\ 0 37\x80-\xff]+   #some numbe r  of atom  char acters.. .
(?![^(\ 0 4 0)<>@,;: ".\ \\[ \]\ 000 - \ 03 7\x80-\xff])# . .not  f ollowed  by  someth ing  th atcou ld  be partof an at om 
|   \ [                  #  [
(? :  [^\\\ x80-\ xff\ n\ 01 5 \[\ ]] |  \ \  [ ^ \ x80- \x ff 
015()] _| _\\ [^\x80-\xff]  )*_\) _)*
\)_ )*__  _  _   _  __     # leading <
(?:  @  (?: [\040\t] |__\(
(?: _[^\\\x80-\xff\n\015()]__|  \\ [^\x80-\xff] _|  \( (?: _[^\\\x80-\xff\n\015()] _|  \\ [^\x80-\xff]  )* \) _)*
\)_ )* _  (?:
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number_of atom characters...
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) #..not followed by_something that could_be_part_of an atom
| _ \[    _     _      _     _ # [
(?: [^\\\x80-\xff\n\015\[\]] |_ \\_[^\x80-\xff]  )*  _ # _ _stuff
\]  _     _  _     __  ___# _  __ __  ]
)   __      _   __   _    _ # initial subdomain
(?:  _ _ _          _     _   _ __  _#
(?:_[\040\t] |_ \(
(?:  [^\\\x80-\xff\n\015()]  | _\\ [^\x80-\xff]_ |  \( (?: _[^\\\x80-\xff\n\015()]  | _\\_[^\x80-\xff]  )* \)  )*
\)_ )*  \.  _    ___    _     _  _# if led by a period...
(?: [\040\t]_|_ \(
(?:  [^\\\x80-\xff\n\015()]  |__\\ [^\x80-\xff]  |  \(_(?:__[^\\\x80-\xff\n\015()]  |  \\_[^\x80-\xff]  )* \)  )*
\)_ )*   (?:
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    #_some number of_atom characters...
(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) #..not followed by_something_that_could be part of an atom
|   \[ _ _  _         _      _ # [
(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff