blob: 4eb228afe4662ca652f548cbfe81562223cc197c [file] [log] [blame]
Janis Danisevskis112c9cc2016-03-31 13:35:25 +01001# This set of tests is run only with the 8-bit library. They must not require
2# UTF-8 or Unicode property support. */
Nick Kralevichf73ff172014-09-27 12:41:49 -07003
Janis Danisevskis112c9cc2016-03-31 13:35:25 +01004#forbid_utf
5#newline_default lf any anycrlf
Nick Kralevichf73ff172014-09-27 12:41:49 -07006
Janis Danisevskis112c9cc2016-03-31 13:35:25 +01007/ab/
8\= Expect error message (too big char) and no match
9 A\x{123}B
10 A\o{443}B
Nick Kralevichf73ff172014-09-27 12:41:49 -070011
12/\x{100}/I
13
14/\o{400}/I
15
16/ (?: [\040\t] | \(
17(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
18\) )* # optional leading comment
19(?: (?:
20[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
21(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
22|
23" (?: # opening quote...
24[^\\\x80-\xff\n\015"] # Anything except backslash and quote
25| # or
26\\ [^\x80-\xff] # Escaped something (something != CR)
27)* " # closing quote
28) # initial word
29(?: (?: [\040\t] | \(
30(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
31\) )* \. (?: [\040\t] | \(
32(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
33\) )* (?:
34[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
35(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
36|
37" (?: # opening quote...
38[^\\\x80-\xff\n\015"] # Anything except backslash and quote
39| # or
40\\ [^\x80-\xff] # Escaped something (something != CR)
41)* " # closing quote
42) )* # further okay, if led by a period
43(?: [\040\t] | \(
44(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
45\) )* @ (?: [\040\t] | \(
46(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
47\) )* (?:
48[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
49(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
50| \[ # [
51(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
52\] # ]
53) # initial subdomain
54(?: #
55(?: [\040\t] | \(
56(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
57\) )* \. # if led by a period...
58(?: [\040\t] | \(
59(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
60\) )* (?:
61[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
62(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
63| \[ # [
64(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
65\] # ]
66) # ...further okay
67)*
68# address
69| # or
70(?:
71[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
72(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
73|
74" (?: # opening quote...
75[^\\\x80-\xff\n\015"] # Anything except backslash and quote
76| # or
77\\ [^\x80-\xff] # Escaped something (something != CR)
78)* " # closing quote
79) # one word, optionally followed by....
80(?:
81[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
82\(
83(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
84\) | # comments, or...
85
86" (?: # opening quote...
87[^\\\x80-\xff\n\015"] # Anything except backslash and quote
88| # or
89\\ [^\x80-\xff] # Escaped something (something != CR)
90)* " # closing quote
91# quoted strings
92)*
93< (?: [\040\t] | \(
94(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
95\) )* # leading <
96(?: @ (?: [\040\t] | \(
97(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
98\) )* (?:
99[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
100(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
101| \[ # [
102(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
103\] # ]
104) # initial subdomain
105(?: #
106(?: [\040\t] | \(
107(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
108\) )* \. # if led by a period...
109(?: [\040\t] | \(
110(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
111\) )* (?:
112[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
113(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
114| \[ # [
115(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
116\] # ]
117) # ...further okay
118)*
119
120(?: (?: [\040\t] | \(
121(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
122\) )* , (?: [\040\t] | \(
123(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
124\) )* @ (?: [\040\t] | \(
125(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
126\) )* (?:
127[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
128(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
129| \[ # [
130(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
131\] # ]
132) # initial subdomain
133(?: #
134(?: [\040\t] | \(
135(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
136\) )* \. # if led by a period...
137(?: [\040\t] | \(
138(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
139\) )* (?:
140[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
141(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
142| \[ # [
143(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
144\] # ]
145) # ...further okay
146)*
147)* # further okay, if led by comma
148: # closing colon
149(?: [\040\t] | \(
150(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
151\) )* )? # optional route
152(?:
153[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
154(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
155|
156" (?: # opening quote...
157[^\\\x80-\xff\n\015"] # Anything except backslash and quote
158| # or
159\\ [^\x80-\xff] # Escaped something (something != CR)
160)* " # closing quote
161) # initial word
162(?: (?: [\040\t] | \(
163(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
164\) )* \. (?: [\040\t] | \(
165(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
166\) )* (?:
167[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
168(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
169|
170" (?: # opening quote...
171[^\\\x80-\xff\n\015"] # Anything except backslash and quote
172| # or
173\\ [^\x80-\xff] # Escaped something (something != CR)
174)* " # closing quote
175) )* # further okay, if led by a period
176(?: [\040\t] | \(
177(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
178\) )* @ (?: [\040\t] | \(
179(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
180\) )* (?:
181[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
182(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
183| \[ # [
184(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
185\] # ]
186) # initial subdomain
187(?: #
188(?: [\040\t] | \(
189(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
190\) )* \. # if led by a period...
191(?: [\040\t] | \(
192(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
193\) )* (?:
194[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
195(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
196| \[ # [
197(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
198\] # ]
199) # ...further okay
200)*
201# address spec
202(?: [\040\t] | \(
203(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
204\) )* > # trailing >
205# name and address
206) (?: [\040\t] | \(
207(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
208\) )* # optional trailing comment
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100209/Ix
Nick Kralevichf73ff172014-09-27 12:41:49 -0700210
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100211/\h/I
Nick Kralevichf73ff172014-09-27 12:41:49 -0700212
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100213/\H/I
Nick Kralevichf73ff172014-09-27 12:41:49 -0700214
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100215/\v/I
Nick Kralevichf73ff172014-09-27 12:41:49 -0700216
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100217/\V/I
Nick Kralevichf73ff172014-09-27 12:41:49 -0700218
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100219/\R/I
Nick Kralevichf73ff172014-09-27 12:41:49 -0700220
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100221/[\h]/B
Nick Kralevichf73ff172014-09-27 12:41:49 -0700222 >\x09<
223
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100224/[\h]+/B
Nick Kralevichf73ff172014-09-27 12:41:49 -0700225 >\x09\x20\xa0<
226
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100227/[\v]/B
Nick Kralevichf73ff172014-09-27 12:41:49 -0700228
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100229/[\H]/B
Nick Kralevichf73ff172014-09-27 12:41:49 -0700230
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100231/[^\h]/B
Nick Kralevichf73ff172014-09-27 12:41:49 -0700232
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100233/[\V]/B
Nick Kralevichf73ff172014-09-27 12:41:49 -0700234
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100235/[\x0a\V]/B
Nick Kralevichf73ff172014-09-27 12:41:49 -0700236
237/\777/I
238
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100239/(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF)XX/mark
Nick Kralevichf73ff172014-09-27 12:41:49 -0700240 XX
241
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100242/(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF)XX/mark,alt_verbnames
243 XX
244
245/(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE)XX/mark
Nick Kralevichf73ff172014-09-27 12:41:49 -0700246 XX
247
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100248/(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE)XX/mark,alt_verbnames
249 XX
Nick Kralevichf73ff172014-09-27 12:41:49 -0700250
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100251/\u0100/alt_bsux,allow_empty_class,match_unset_backref,dupnames
Nick Kralevichf73ff172014-09-27 12:41:49 -0700252
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100253/[\u0100-\u0200]/alt_bsux,allow_empty_class,match_unset_backref,dupnames
Nick Kralevichf73ff172014-09-27 12:41:49 -0700254
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100255/[^\x00-a]{12,}[^b-\xff]*/B
Nick Kralevichf73ff172014-09-27 12:41:49 -0700256
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100257/[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/B
Elliott Hughes0ea98832015-12-04 23:18:20 -0800258
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100259/(*MARK:a\x{100}b)z/alt_verbnames
260
Elliott Hughes9bc971b2018-07-27 13:23:14 -0700261/(*:*++++++++++++''''''''''''''''''''+''+++'+++x+++++++++++++++++++++++++++++++++++(++++++++++++++++++++:++++++%++:''''''''''''''''''''''''+++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++k+++++++''''+++'+++++++++++++++++++++++''''++++++++++++':ƿ)/
262
Elliott Hughes378b1752021-06-08 13:42:40 -0700263/(?i:A{1,}\6666666666)/
264 A\x{1b6}6666666
265
Janis Danisevskis112c9cc2016-03-31 13:35:25 +0100266# End of testinput9