読者です 読者をやめる 読者になる 読者になる

正規表現でメールアドレスをチェックは厳密にやろうとするとほぼ不可能

ネタ元

本気でメールアドレスを正規表現でマッチさせようとすると、こんな感じになってしまう例

http://www.din.or.jp/~ohzaki/mail_regex.htm

(?:(?:(?:(?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x0
9]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x
0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(
?:[\x21-\x27\x2A-\x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|
(?:\\(?:[\x21-\x7E]|[\x20\x09])|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0
E-\x1F\x7F]|\x0A|\x0D)))|(?-1)))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\
x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:
[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)
[\x20\x09]+)*))?|(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x
20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*)))?(?:[A-Za-z0-9!#$%&'*+\-/=?
^_`{|}~]+(?:\.[A-Za-z0-9!#$%&'*+\-/=?^_`{|}~]+)*)(?:(?:(?:(?:[\x20
\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20
\x09]+)*))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x
20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?:[\x21-\x27\x2A-\x5B\x
5D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x
20\x09])|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D))
)|(?-1)))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]
+(?:(?:\x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:[\x20\x09]*(?:\x0D\x0A)
)?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?|(?:(?:
[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)
[\x20\x09]+)*)))?)|(?:(?:(?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x
09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(\((?:(?:(?:[\x2
0\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x2
0\x09]+)*))?(?:(?:[\x21-\x27\x2A-\x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C
\x0E-\x1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x20\x09])|(?:\\(?:\x00|[\x01
-\x08\x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))|(?-1)))*(?:(?:[\x20\x09]*
(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+
)*))?\)))+(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]
+(?:(?:\x0D\x0A)[\x20\x09]+)*))?|(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\
x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*)))?"(?:(?:(?:
[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)
[\x20\x09]+)*))?(?:(?:[\x21\x23-\x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C\
x0E-\x1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x20\x09])|(?:\\(?:\x00|[\x01-
\x08\x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))))*(?:(?:[\x20\x09]*(?:\x0D
\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?"(
?:(?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(
?:\x0D\x0A)[\x20\x09]+)*))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\
x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?:[\x21
-\x27\x2A-\x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(?:\\(?
:[\x21-\x7E]|[\x20\x09])|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E-\x1F\
x7F]|\x0A|\x0D)))|(?-1)))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09
]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:[\x20\x
09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x
09]+)*))?|(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]
+(?:(?:\x0D\x0A)[\x20\x09]+)*)))?)|(?:(?:(?:(?:(?:(?:(?:[\x20\x09]
*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]
+)*))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x0
9]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?:[\x21-\x27\x2A-\x5B\x5D-\x
7E]|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x20\x0
9])|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))|(?-
1)))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(
?:\x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x
20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?|(?:(?:[\x20
\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20
\x09]+)*)))?[A-Za-z0-9!#$%&'*+\-/=?^_`{|}~]+(?:(?:(?:(?:[\x20\x09]
*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]
+)*))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x0
9]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?:[\x21-\x27\x2A-\x5B\x5D-\x
7E]|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x20\x0
9])|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))|(?-
1)))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(
?:\x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x
20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?|(?:(?:[\x20
\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20
\x09]+)*)))?)|(?:(?:(?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|
(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(\((?:(?:(?:[\x20\x09
]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09
]+)*))?(?:(?:[\x21-\x27\x2A-\x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C\x0E-
\x1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x20\x09])|(?:\\(?:\x00|[\x01-\x08
\x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))|(?-1)))*(?:(?:[\x20\x09]*(?:\x
0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?
\)))+(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(
?:\x0D\x0A)[\x20\x09]+)*))?|(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x
09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*)))?"(?:(?:(?:[\x20
\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20
\x09]+)*))?(?:(?:[\x21\x23-\x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\
x1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x20\x09])|(?:\\(?:\x00|[\x01-\x08\
x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))))*(?:(?:[\x20\x09]*(?:\x0D\x0A)
)?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?"(?:(?:
(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0
D\x0A)[\x20\x09]+)*))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x
09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?:[\x21-\x27
\x2A-\x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(?:\\(?:[\x2
1-\x7E]|[\x20\x09])|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|
\x0A|\x0D)))|(?-1)))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?
:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:[\x20\x09]*(
?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)
*))?|(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(
?:\x0D\x0A)[\x20\x09]+)*)))?))(?:\.(?:(?:(?:(?:(?:(?:[\x20\x09]*(?
:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*
))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+
(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?:[\x21-\x27\x2A-\x5B\x5D-\x7E]
|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x20\x09])
|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))|(?-1))
)*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\
x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\
x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?|(?:(?:[\x20\x0
9]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x0
9]+)*)))?[A-Za-z0-9!#$%&'*+\-/=?^_`{|}~]+(?:(?:(?:(?:[\x20\x09]*(?
:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*
))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+
(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?:[\x21-\x27\x2A-\x5B\x5D-\x7E]
|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x20\x09])
|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))|(?-1))
)*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\
x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\
x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?|(?:(?:[\x20\x0
9]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x0
9]+)*)))?)|(?:(?:(?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:
[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(\((?:(?:(?:[\x20\x09]*(
?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)
*))?(?:(?:[\x21-\x27\x2A-\x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\x1
F\x7F])|(?:\\(?:[\x21-\x7E]|[\x20\x09])|(?:\\(?:\x00|[\x01-\x08\x0
B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))|(?-1)))*(?:(?:[\x20\x09]*(?:\x0D\
x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?\))
)+(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\
x0D\x0A)[\x20\x09]+)*))?|(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]
+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*)))?"(?:(?:(?:[\x20\x0
9]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x0
9]+)*))?(?:(?:[\x21\x23-\x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\x1F
\x7F])|(?:\\(?:[\x21-\x7E]|[\x20\x09])|(?:\\(?:\x00|[\x01-\x08\x0B
\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[
\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?"(?:(?:(?:
(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x
0A)[\x20\x09]+)*))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]
+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?:[\x21-\x27\x2
A-\x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(?:\\(?:[\x21-\
x7E]|[\x20\x09])|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|\x0
A|\x0D)))|(?-1)))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\
x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:[\x20\x09]*(?:\
x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))
?|(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\
x0D\x0A)[\x20\x09]+)*)))?)))*))@(?:(?:(?:(?:(?:(?:[\x20\x09]*(?:\x
0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?
(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:
(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?:[\x21-\x27\x2A-\x5B\x5D-\x7E]|[\
x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x20\x09])|(?
:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))|(?-1)))*(
?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D
\x0A)[\x20\x09]+)*))?\)))+(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09
]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?|(?:(?:[\x20\x09]*
(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+
)*)))?(?:[A-Za-z0-9!#$%&'*+\-/=?^_`{|}~]+(?:\.[A-Za-z0-9!#$%&'*+\-
/=?^_`{|}~]+)*)(?:(?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?
:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(\((?:(?:(?:[\x20\x09]*
(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+
)*))?(?:(?:[\x21-\x27\x2A-\x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\x
1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x20\x09])|(?:\\(?:\x00|[\x01-\x08\x
0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))|(?-1)))*(?:(?:[\x20\x09]*(?:\x0D
\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?\)
))+(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:
\x0D\x0A)[\x20\x09]+)*))?|(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09
]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*)))?)|(?:(?:(?:(?:(?:
[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)
[\x20\x09]+)*))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(
?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?:[\x21-\x27\x2A-\
x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(?:\\(?:[\x21-\x7E
]|[\x20\x09])|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|\x0A|\
x0D)))|(?-1)))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20
\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:[\x20\x09]*(?:\x0D
\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?|(
?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D
\x0A)[\x20\x09]+)*)))?\[(?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x0
9]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:[\x21-\x5A\x5E
-\x7E]|(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|(?:\\(?:[\x21-\x7E]|[\x
20\x09])|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D))
))))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(
?:\x0D\x0A)[\x20\x09]+)*))?\](?:(?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?
[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(\((?:(?:
(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x
0A)[\x20\x09]+)*))?(?:(?:[\x21-\x27\x2A-\x5B\x5D-\x7E]|[\x01-\x08\
x0B\x0C\x0E-\x1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x20\x09])|(?:\\(?:\x0
0|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))|(?-1)))*(?:(?:[\x2
0\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x2
0\x09]+)*))?\)))+(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x
20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?|(?:(?:[\x20\x09]*(?:\x0D\x
0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*)))?)|(
?:(?:(?:(?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09
]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0
A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?
:[\x21-\x27\x2A-\x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(
?:\\(?:[\x21-\x7E]|[\x20\x09])|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E
-\x1F\x7F]|\x0A|\x0D)))|(?-1)))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x
20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:[
\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[
\x20\x09]+)*))?|(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x2
0\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*)))?[A-Za-z0-9!#$%&'*+\-/=?^_`{
|}~]+(?:(?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09
]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0
A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?
:[\x21-\x27\x2A-\x5B\x5D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(
?:\\(?:[\x21-\x7E]|[\x20\x09])|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E
-\x1F\x7F]|\x0A|\x0D)))|(?-1)))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x
20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:[
\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[
\x20\x09]+)*))?|(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x2
0\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*)))?)(?:\.(?:(?:(?:(?:(?:[\x20\
x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\
x09]+)*))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x2
0\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?:[\x21-\x27\x2A-\x5B\x5
D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x2
0\x09])|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))
|(?-1)))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+
(?:(?:\x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:[\x20\x09]*(?:\x0D\x0A))
?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?|(?:(?:[
\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[
\x20\x09]+)*)))?[A-Za-z0-9!#$%&'*+\-/=?^_`{|}~]+(?:(?:(?:(?:[\x20\
x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\
x09]+)*))?(\((?:(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x2
0\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?(?:(?:[\x21-\x27\x2A-\x5B\x5
D-\x7E]|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F])|(?:\\(?:[\x21-\x7E]|[\x2
0\x09])|(?:\\(?:\x00|[\x01-\x08\x0B\x0C\x0E-\x1F\x7F]|\x0A|\x0D)))
|(?-1)))*(?:(?:[\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+
(?:(?:\x0D\x0A)[\x20\x09]+)*))?\)))+(?:(?:[\x20\x09]*(?:\x0D\x0A))
?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[\x20\x09]+)*))?|(?:(?:[
\x20\x09]*(?:\x0D\x0A))?[\x20\x09]+|(?:[\x20\x09]+(?:(?:\x0D\x0A)[
\x20\x09]+)*)))?))*))