• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# This set of tests is run only with the 8-bit library. They must not require
2# UTF-8 or Unicode property support. */
3
4#forbid_utf
5#newline_default lf any anycrlf
6
7/ab/
8\= Expect error message (too big char) and no match
9    A\x{123}B
10    A\o{443}B
11
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
209/Ix
210
211/\h/I
212
213/\H/I
214
215/\v/I
216
217/\V/I
218
219/\R/I
220
221/[\h]/B
222    >\x09<
223
224/[\h]+/B
225    >\x09\x20\xa0<
226
227/[\v]/B
228
229/[\H]/B
230
231/[^\h]/B
232
233/[\V]/B
234
235/[\x0a\V]/B
236
237/\777/I
238
239/(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF)XX/mark
240    XX
241
242/(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF)XX/mark,alt_verbnames
243    XX
244
245/(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE)XX/mark
246    XX
247
248/(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE)XX/mark,alt_verbnames
249    XX
250
251/\u0100/alt_bsux,allow_empty_class,match_unset_backref,dupnames
252
253/[\u0100-\u0200]/alt_bsux,allow_empty_class,match_unset_backref,dupnames
254
255/[^\x00-a]{12,}[^b-\xff]*/B
256
257/[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/B
258
259/(*MARK:a\x{100}b)z/alt_verbnames
260
261/(*:*++++++++++++''''''''''''''''''''+''+++'+++x+++++++++++++++++++++++++++++++++++(++++++++++++++++++++:++++++%++:''''''''''''''''''''''''+++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++k+++++++''''+++'+++++++++++++++++++++++''''++++++++++++':ƿ)/
262
263/(?i:A{1,}\6666666666)/
264    A\x{1b6}6666666
265
266# End of testinput9
267