• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# This set of tests is for the 16-bit and 32-bit libraries' basic (non-UTF)
2# features that are not compatible with the 8-bit library, or which give
3# different output in 16-bit or 32-bit mode. The output for the two widths is
4# different, so they have separate output files.
5
6#forbid_utf
7#newline_default LF ANY ANYCRLF
8
9/[^\x{c4}]/IB
10------------------------------------------------------------------
11        Bra
12        [^\x{c4}]
13        Ket
14        End
15------------------------------------------------------------------
16Capture group count = 0
17Subject length lower bound = 1
18
19/\x{100}/I
20Capture group count = 0
21First code unit = \x{100}
22Subject length lower bound = 1
23
24/  (?: [\040\t] |  \(
25(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
26\)  )*                          # optional leading comment
27(?:    (?:
28[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
29(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
30|
31" (?:                      # opening quote...
32[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
33|                     #    or
34\\ [^\x80-\xff]           #   Escaped something (something != CR)
35)* "  # closing quote
36)                    # initial word
37(?:  (?: [\040\t] |  \(
38(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
39\)  )*  \.  (?: [\040\t] |  \(
40(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
41\)  )*   (?:
42[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
43(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
44|
45" (?:                      # opening quote...
46[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
47|                     #    or
48\\ [^\x80-\xff]           #   Escaped something (something != CR)
49)* "  # closing quote
50)  )* # further okay, if led by a period
51(?: [\040\t] |  \(
52(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
53\)  )*  @  (?: [\040\t] |  \(
54(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
55\)  )*    (?:
56[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
57(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
58|   \[                         # [
59(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
60\]                        #           ]
61)                           # initial subdomain
62(?:                                  #
63(?: [\040\t] |  \(
64(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
65\)  )*  \.                        # if led by a period...
66(?: [\040\t] |  \(
67(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
68\)  )*   (?:
69[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
70(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
71|   \[                         # [
72(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
73\]                        #           ]
74)                     #   ...further okay
75)*
76# address
77|                     #  or
78(?:
79[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
80(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
81|
82" (?:                      # opening quote...
83[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
84|                     #    or
85\\ [^\x80-\xff]           #   Escaped something (something != CR)
86)* "  # closing quote
87)             # one word, optionally followed by....
88(?:
89[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
90\(
91(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
92\)       |  # comments, or...
93
94" (?:                      # opening quote...
95[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
96|                     #    or
97\\ [^\x80-\xff]           #   Escaped something (something != CR)
98)* "  # closing quote
99# quoted strings
100)*
101<  (?: [\040\t] |  \(
102(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
103\)  )*                     # leading <
104(?:  @  (?: [\040\t] |  \(
105(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
106\)  )*    (?:
107[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
108(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
109|   \[                         # [
110(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
111\]                        #           ]
112)                           # initial subdomain
113(?:                                  #
114(?: [\040\t] |  \(
115(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
116\)  )*  \.                        # if led by a period...
117(?: [\040\t] |  \(
118(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
119\)  )*   (?:
120[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
121(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
122|   \[                         # [
123(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
124\]                        #           ]
125)                     #   ...further okay
126)*
127
128(?:  (?: [\040\t] |  \(
129(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
130\)  )*  ,  (?: [\040\t] |  \(
131(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
132\)  )*  @  (?: [\040\t] |  \(
133(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
134\)  )*    (?:
135[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
136(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
137|   \[                         # [
138(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
139\]                        #           ]
140)                           # initial subdomain
141(?:                                  #
142(?: [\040\t] |  \(
143(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
144\)  )*  \.                        # if led by a period...
145(?: [\040\t] |  \(
146(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
147\)  )*   (?:
148[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
149(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
150|   \[                         # [
151(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
152\]                        #           ]
153)                     #   ...further okay
154)*
155)* # further okay, if led by comma
156:                                # closing colon
157(?: [\040\t] |  \(
158(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
159\)  )*  )? #       optional route
160(?:
161[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
162(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
163|
164" (?:                      # opening quote...
165[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
166|                     #    or
167\\ [^\x80-\xff]           #   Escaped something (something != CR)
168)* "  # closing quote
169)                    # initial word
170(?:  (?: [\040\t] |  \(
171(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
172\)  )*  \.  (?: [\040\t] |  \(
173(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
174\)  )*   (?:
175[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
176(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
177|
178" (?:                      # opening quote...
179[^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
180|                     #    or
181\\ [^\x80-\xff]           #   Escaped something (something != CR)
182)* "  # closing quote
183)  )* # further okay, if led by a period
184(?: [\040\t] |  \(
185(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
186\)  )*  @  (?: [\040\t] |  \(
187(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
188\)  )*    (?:
189[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
190(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
191|   \[                         # [
192(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
193\]                        #           ]
194)                           # initial subdomain
195(?:                                  #
196(?: [\040\t] |  \(
197(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
198\)  )*  \.                        # if led by a period...
199(?: [\040\t] |  \(
200(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
201\)  )*   (?:
202[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
203(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
204|   \[                         # [
205(?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
206\]                        #           ]
207)                     #   ...further okay
208)*
209#       address spec
210(?: [\040\t] |  \(
211(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
212\)  )*  > #                  trailing >
213# name and address
214)  (?: [\040\t] |  \(
215(?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
216\)  )*                       # optional trailing comment
217/Ix
218Capture group count = 0
219Contains explicit CR or LF match
220Options: extended
221Starting code units: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
222  9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e
223  f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \xff
224Subject length lower bound = 3
225
226/[\h]/B
227------------------------------------------------------------------
228        Bra
229        [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]
230        Ket
231        End
232------------------------------------------------------------------
233    >\x09<
234 0: \x09
235
236/[\h]+/B
237------------------------------------------------------------------
238        Bra
239        [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]++
240        Ket
241        End
242------------------------------------------------------------------
243    >\x09\x20\xa0<
244 0: \x09 \xa0
245
246/[\v]/B
247------------------------------------------------------------------
248        Bra
249        [\x0a-\x0d\x85\x{2028}-\x{2029}]
250        Ket
251        End
252------------------------------------------------------------------
253
254/[^\h]/B
255------------------------------------------------------------------
256        Bra
257        [^\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]
258        Ket
259        End
260------------------------------------------------------------------
261
262/\h+/I
263Capture group count = 0
264Starting code units: \x09 \x20 \xa0 \xff
265Subject length lower bound = 1
266    \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
267 0: \x{1680}\x{2000}\x{202f}\x{3000}
268    \x{3001}\x{2fff}\x{200a}\xa0\x{2000}
269 0: \x{200a}\xa0\x{2000}
270
271/[\h\x{dc00}]+/IB
272------------------------------------------------------------------
273        Bra
274        [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}\x{dc00}]++
275        Ket
276        End
277------------------------------------------------------------------
278Capture group count = 0
279Starting code units: \x09 \x20 \xa0 \xff
280Subject length lower bound = 1
281    \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
282 0: \x{1680}\x{2000}\x{202f}\x{3000}
283    \x{3001}\x{2fff}\x{200a}\xa0\x{2000}
284 0: \x{200a}\xa0\x{2000}
285
286/\H+/I
287Capture group count = 0
288Subject length lower bound = 1
289    \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
290 0: \x{167f}\x{1681}\x{180d}\x{180f}
291    \x{2000}\x{200a}\x{1fff}\x{200b}
292 0: \x{1fff}\x{200b}
293    \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
294 0: \x{202e}\x{2030}\x{205e}\x{2060}
295    \xa0\x{3000}\x9f\xa1\x{2fff}\x{3001}
296 0: \x9f\xa1\x{2fff}\x{3001}
297
298/[\H\x{d800}]+/
299    \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
300 0: \x{167f}\x{1681}\x{180d}\x{180f}
301    \x{2000}\x{200a}\x{1fff}\x{200b}
302 0: \x{1fff}\x{200b}
303    \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
304 0: \x{202e}\x{2030}\x{205e}\x{2060}
305    \xa0\x{3000}\x9f\xa1\x{2fff}\x{3001}
306 0: \x9f\xa1\x{2fff}\x{3001}
307
308/\v+/I
309Capture group count = 0
310Starting code units: \x0a \x0b \x0c \x0d \x85 \xff
311Subject length lower bound = 1
312    \x{2027}\x{2030}\x{2028}\x{2029}
313 0: \x{2028}\x{2029}
314    \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
315 0: \x85\x0a\x0b\x0c\x0d
316
317/[\v\x{dc00}]+/IB
318------------------------------------------------------------------
319        Bra
320        [\x0a-\x0d\x85\x{2028}-\x{2029}\x{dc00}]++
321        Ket
322        End
323------------------------------------------------------------------
324Capture group count = 0
325Starting code units: \x0a \x0b \x0c \x0d \x85 \xff
326Subject length lower bound = 1
327    \x{2027}\x{2030}\x{2028}\x{2029}
328 0: \x{2028}\x{2029}
329    \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
330 0: \x85\x0a\x0b\x0c\x0d
331
332/\V+/I
333Capture group count = 0
334Subject length lower bound = 1
335    \x{2028}\x{2029}\x{2027}\x{2030}
336 0: \x{2027}\x{2030}
337    \x85\x0a\x0b\x0c\x0d\x09\x0e\x84\x86
338 0: \x09\x0e\x84\x86
339
340/[\V\x{d800}]+/
341    \x{2028}\x{2029}\x{2027}\x{2030}
342 0: \x{2027}\x{2030}
343    \x85\x0a\x0b\x0c\x0d\x09\x0e\x84\x86
344 0: \x09\x0e\x84\x86
345
346/\R+/I,bsr=unicode
347Capture group count = 0
348\R matches any Unicode newline
349Starting code units: \x0a \x0b \x0c \x0d \x85 \xff
350Subject length lower bound = 1
351    \x{2027}\x{2030}\x{2028}\x{2029}
352 0: \x{2028}\x{2029}
353    \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
354 0: \x85\x0a\x0b\x0c\x0d
355
356/\x{d800}\x{d7ff}\x{dc00}\x{dc00}\x{dcff}\x{dd00}/I
357Capture group count = 0
358First code unit = \x{d800}
359Last code unit = \x{dd00}
360Subject length lower bound = 6
361    \x{d800}\x{d7ff}\x{dc00}\x{dc00}\x{dcff}\x{dd00}
362 0: \x{d800}\x{d7ff}\x{dc00}\x{dc00}\x{dcff}\x{dd00}
363
364/[^\x{80}][^\x{ff}][^\x{100}][^\x{1000}][^\x{ffff}]/B
365------------------------------------------------------------------
366        Bra
367        [^\x{80}]
368        [^\x{ff}]
369        [^\x{100}]
370        [^\x{1000}]
371        [^\x{ffff}]
372        Ket
373        End
374------------------------------------------------------------------
375
376/[^\x{80}][^\x{ff}][^\x{100}][^\x{1000}][^\x{ffff}]/Bi
377------------------------------------------------------------------
378        Bra
379     /i [^\x{80}]
380     /i [^\x{ff}]
381     /i [^\x{100}]
382     /i [^\x{1000}]
383     /i [^\x{ffff}]
384        Ket
385        End
386------------------------------------------------------------------
387
388/[^\x{100}]*[^\x{1000}]+[^\x{ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{100}]{5,6}+/B
389------------------------------------------------------------------
390        Bra
391        [^\x{100}]*
392        [^\x{1000}]+
393        [^\x{ffff}]??
394        [^\x{8000}]{4}
395        [^\x{8000}]*
396        [^\x{7fff}]{2}
397        [^\x{7fff}]{0,7}?
398        [^\x{100}]{5}
399        [^\x{100}]?+
400        Ket
401        End
402------------------------------------------------------------------
403
404/[^\x{100}]*[^\x{1000}]+[^\x{ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{100}]{5,6}+/Bi
405------------------------------------------------------------------
406        Bra
407     /i [^\x{100}]*
408     /i [^\x{1000}]+
409     /i [^\x{ffff}]??
410     /i [^\x{8000}]{4}
411     /i [^\x{8000}]*
412     /i [^\x{7fff}]{2}
413     /i [^\x{7fff}]{0,7}?
414     /i [^\x{100}]{5}
415     /i [^\x{100}]?+
416        Ket
417        End
418------------------------------------------------------------------
419
420/(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF)XX/mark
421    XX
422 0: XX
423MK: 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
424
425/(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE)XX/mark
426    XX
427 0: XX
428MK: 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE
429
430/\u0100/B,alt_bsux,allow_empty_class,match_unset_backref
431------------------------------------------------------------------
432        Bra
433        \x{100}
434        Ket
435        End
436------------------------------------------------------------------
437
438/[\u0100-\u0200]/B,alt_bsux,allow_empty_class,match_unset_backref
439------------------------------------------------------------------
440        Bra
441        [\x{100}-\x{200}]
442        Ket
443        End
444------------------------------------------------------------------
445
446/\ud800/B,alt_bsux,allow_empty_class,match_unset_backref
447------------------------------------------------------------------
448        Bra
449        \x{d800}
450        Ket
451        End
452------------------------------------------------------------------
453
454/^\x{ffff}+/i
455    \x{ffff}
456 0: \x{ffff}
457
458/^\x{ffff}?/i
459    \x{ffff}
460 0: \x{ffff}
461
462/^\x{ffff}*/i
463    \x{ffff}
464 0: \x{ffff}
465
466/^\x{ffff}{3}/i
467    \x{ffff}\x{ffff}\x{ffff}
468 0: \x{ffff}\x{ffff}\x{ffff}
469
470/^\x{ffff}{0,3}/i
471    \x{ffff}
472 0: \x{ffff}
473
474/[^\x00-a]{12,}[^b-\xff]*/B
475------------------------------------------------------------------
476        Bra
477        [b-\xff] (neg){12,}
478        [\x00-a] (neg)*+
479        Ket
480        End
481------------------------------------------------------------------
482
483/[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/B
484------------------------------------------------------------------
485        Bra
486        [\x00-\x08\x0e-\x1f!-\xff] (neg)*
487        \s*
488
489        [0-9A-Z_a-z]++
490        \W+
491
492        [\x00-/:-\xff] (neg)*?
493        \d
494        0
495        [\x00-/:-@[-^`{-\xff] (neg){4,6}?
496        \w*
497        A
498        Ket
499        End
500------------------------------------------------------------------
501
502/a*[b-\x{200}]?a#a*[b-\x{200}]?b#[a-f]*[g-\x{200}]*#[g-\x{200}]*[a-c]*#[g-\x{200}]*[a-h]*/B
503------------------------------------------------------------------
504        Bra
505        a*
506        [b-\xff\x{100}-\x{200}]?+
507        a#
508        a*+
509        [b-\xff\x{100}-\x{200}]?
510        b#
511        [a-f]*+
512        [g-\xff\x{100}-\x{200}]*+
513        #
514        [g-\xff\x{100}-\x{200}]*+
515        [a-c]*+
516        #
517        [g-\xff\x{100}-\x{200}]*
518        [a-h]*+
519        Ket
520        End
521------------------------------------------------------------------
522
523/^[\x{1234}\x{4321}]{2,4}?/
524    \x{1234}\x{1234}\x{1234}
525 0: \x{1234}\x{1234}
526
527# Check maximum non-UTF character size for the 16-bit library.
528
529/\x{ffff}/
530    A\x{ffff}B
531 0: \x{ffff}
532
533/\x{10000}/
534Failed: error 134 at offset 8: character code point value in \x{} or \o{} is too large
535
536/\o{20000}/
537
538# Check maximum character size for the 32-bit library. These will all give
539# errors in the 16-bit library.
540
541/\x{110000}/
542Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
543
544/\x{7fffffff}/
545Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
546
547/\x{80000000}/
548Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
549
550/\x{ffffffff}/
551Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
552
553/\x{100000000}/
554Failed: error 134 at offset 12: character code point value in \x{} or \o{} is too large
555
556/\o{17777777777}/
557Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
558
559/\o{20000000000}/
560Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
561
562/\o{37777777777}/
563Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
564
565/\o{40000000000}/
566Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
567
568/\x{7fffffff}\x{7fffffff}/I
569Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
570
571/\x{80000000}\x{80000000}/I
572Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
573
574/\x{ffffffff}\x{ffffffff}/I
575Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
576
577# Non-UTF characters
578
579/.{2,3}/
580    \x{400000}\x{400001}\x{400002}\x{400003}
581** Character \x{400000} is greater than 0xffff and UTF-16 mode is not enabled.
582** Truncation will probably give the wrong result.
583** Character \x{400001} is greater than 0xffff and UTF-16 mode is not enabled.
584** Truncation will probably give the wrong result.
585** Character \x{400002} is greater than 0xffff and UTF-16 mode is not enabled.
586** Truncation will probably give the wrong result.
587** Character \x{400003} is greater than 0xffff and UTF-16 mode is not enabled.
588** Truncation will probably give the wrong result.
589 0: \x00\x01\x02
590
591/\x{400000}\x{800000}/IBi
592Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
593
594# Check character ranges
595
596/[\H]/IB
597------------------------------------------------------------------
598        Bra
599        [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{ffff}]
600        Ket
601        End
602------------------------------------------------------------------
603Capture group count = 0
604Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0a \x0b
605  \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a
606  \x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9
607  : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^
608  _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80
609  \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f
610  \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e
611  \x9f \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae
612  \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd
613  \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc
614  \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb
615  \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea
616  \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9
617  \xfa \xfb \xfc \xfd \xfe \xff
618Subject length lower bound = 1
619
620/[\V]/IB
621------------------------------------------------------------------
622        Bra
623        [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{ffff}]
624        Ket
625        End
626------------------------------------------------------------------
627Capture group count = 0
628Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0e
629  \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d
630  \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >
631  ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c
632  d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 \x81 \x82
633  \x83 \x84 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92
634  \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1
635  \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0
636  \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf
637  \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce
638  \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd
639  \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec
640  \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
641  \xfc \xfd \xfe \xff
642Subject length lower bound = 1
643
644/(*THEN:\[A]{65501})/expand
645
646# We can use pcre2test's utf8_input modifier to create wide pattern characters,
647# even though this test is run when UTF is not supported.
648
649/ab������z/utf8_input
650** Failed: character value greater than 0xffff cannot be converted to 16-bit in non-UTF mode
651    ab������z
652    ab\x{7fffffff}z
653
654/ab�������z/utf8_input
655** Failed: invalid UTF-8 string cannot be converted to 16-bit string
656    ab�������z
657    ab\x{ffffffff}z
658
659/ab�Az/utf8_input
660** Failed: invalid UTF-8 string cannot be converted to 16-bit string
661    ab�Az
662    ab\x{80000041}z
663
664# End of testinput11
665