xref: /aosp_15_r20/external/pcre/testdata/testoutput24 (revision 22dc650d8ae982c6770746019a6f94af92b0f024)
1*22dc650dSSadaf Ebrahimi# This file tests the auxiliary pattern conversion features of the PCRE2
2*22dc650dSSadaf Ebrahimi# library, in non-UTF mode.
3*22dc650dSSadaf Ebrahimi
4*22dc650dSSadaf Ebrahimi#forbid_utf
5*22dc650dSSadaf Ebrahimi#newline_default lf any anycrlf
6*22dc650dSSadaf Ebrahimi
7*22dc650dSSadaf Ebrahimi# -------- Tests of glob conversion --------
8*22dc650dSSadaf Ebrahimi
9*22dc650dSSadaf Ebrahimi# Set the glob separator explicitly so that different OS defaults are not a
10*22dc650dSSadaf Ebrahimi# problem. Then test various errors.
11*22dc650dSSadaf Ebrahimi
12*22dc650dSSadaf Ebrahimi#pattern convert=glob,convert_glob_escape=\,convert_glob_separator=/
13*22dc650dSSadaf Ebrahimi
14*22dc650dSSadaf Ebrahimi/abc/posix
15*22dc650dSSadaf Ebrahimi** The convert and posix modifiers are mutually exclusive
16*22dc650dSSadaf Ebrahimi
17*22dc650dSSadaf Ebrahimi# Separator must be / \ or .
18*22dc650dSSadaf Ebrahimi
19*22dc650dSSadaf Ebrahimi/a*b/convert_glob_separator=%
20*22dc650dSSadaf Ebrahimi** Invalid glob separator '%'
21*22dc650dSSadaf Ebrahimi
22*22dc650dSSadaf Ebrahimi# Can't have separator in a class
23*22dc650dSSadaf Ebrahimi
24*22dc650dSSadaf Ebrahimi"[ab/cd]"
25*22dc650dSSadaf Ebrahimi(?s)\A[ab/cd](?<!/)\z
26*22dc650dSSadaf Ebrahimi
27*22dc650dSSadaf Ebrahimi"[,-/]"
28*22dc650dSSadaf Ebrahimi(?s)\A[,-/](?<!/)\z
29*22dc650dSSadaf Ebrahimi
30*22dc650dSSadaf Ebrahimi/[ab/
31*22dc650dSSadaf Ebrahimi** Pattern conversion error at offset 3: missing terminating ] for character class
32*22dc650dSSadaf Ebrahimi
33*22dc650dSSadaf Ebrahimi# Length check
34*22dc650dSSadaf Ebrahimi
35*22dc650dSSadaf Ebrahimi/abc/convert_length=11
36*22dc650dSSadaf Ebrahimi** Pattern conversion error at offset 3: no more memory
37*22dc650dSSadaf Ebrahimi
38*22dc650dSSadaf Ebrahimi/abc/convert_length=12
39*22dc650dSSadaf Ebrahimi(?s)\Aabc\z
40*22dc650dSSadaf Ebrahimi
41*22dc650dSSadaf Ebrahimi# Now some actual tests
42*22dc650dSSadaf Ebrahimi
43*22dc650dSSadaf Ebrahimi/a?b[]xy]*c/
44*22dc650dSSadaf Ebrahimi(?s)\Aa[^/]b[\]xy](*COMMIT)[^/]*?c\z
45*22dc650dSSadaf Ebrahimi    azb]1234c
46*22dc650dSSadaf Ebrahimi 0: azb]1234c
47*22dc650dSSadaf Ebrahimi
48*22dc650dSSadaf Ebrahimi# Tests from the gitwildmatch list, with some additions
49*22dc650dSSadaf Ebrahimi
50*22dc650dSSadaf Ebrahimi/foo/
51*22dc650dSSadaf Ebrahimi(?s)\Afoo\z
52*22dc650dSSadaf Ebrahimi    foo
53*22dc650dSSadaf Ebrahimi 0: foo
54*22dc650dSSadaf Ebrahimi/= Expect no match
55*22dc650dSSadaf EbrahimiNo match
56*22dc650dSSadaf Ebrahimi    bar
57*22dc650dSSadaf EbrahimiNo match
58*22dc650dSSadaf Ebrahimi
59*22dc650dSSadaf Ebrahimi//
60*22dc650dSSadaf Ebrahimi(?s)\A\z
61*22dc650dSSadaf Ebrahimi    \
62*22dc650dSSadaf Ebrahimi 0:
63*22dc650dSSadaf Ebrahimi
64*22dc650dSSadaf Ebrahimi/???/
65*22dc650dSSadaf Ebrahimi(?s)\A[^/][^/][^/]\z
66*22dc650dSSadaf Ebrahimi    foo
67*22dc650dSSadaf Ebrahimi 0: foo
68*22dc650dSSadaf Ebrahimi\= Expect no match
69*22dc650dSSadaf Ebrahimi    foobar
70*22dc650dSSadaf EbrahimiNo match
71*22dc650dSSadaf Ebrahimi
72*22dc650dSSadaf Ebrahimi/*/
73*22dc650dSSadaf Ebrahimi(?s)\A[^/]*+\z
74*22dc650dSSadaf Ebrahimi    foo
75*22dc650dSSadaf Ebrahimi 0: foo
76*22dc650dSSadaf Ebrahimi    \
77*22dc650dSSadaf Ebrahimi 0:
78*22dc650dSSadaf Ebrahimi
79*22dc650dSSadaf Ebrahimi/f*/
80*22dc650dSSadaf Ebrahimi(?s)\Af(*COMMIT)[^/]*+\z
81*22dc650dSSadaf Ebrahimi    foo
82*22dc650dSSadaf Ebrahimi 0: foo
83*22dc650dSSadaf Ebrahimi    f
84*22dc650dSSadaf Ebrahimi 0: f
85*22dc650dSSadaf Ebrahimi
86*22dc650dSSadaf Ebrahimi/*f/
87*22dc650dSSadaf Ebrahimi(?s)\A[^/]*?f\z
88*22dc650dSSadaf Ebrahimi    oof
89*22dc650dSSadaf Ebrahimi 0: oof
90*22dc650dSSadaf Ebrahimi\= Expect no match
91*22dc650dSSadaf Ebrahimi    foo
92*22dc650dSSadaf EbrahimiNo match
93*22dc650dSSadaf Ebrahimi
94*22dc650dSSadaf Ebrahimi/*foo*/
95*22dc650dSSadaf Ebrahimi(?s)\A[^/]*?foo(*COMMIT)[^/]*+\z
96*22dc650dSSadaf Ebrahimi    foo
97*22dc650dSSadaf Ebrahimi 0: foo
98*22dc650dSSadaf Ebrahimi    food
99*22dc650dSSadaf Ebrahimi 0: food
100*22dc650dSSadaf Ebrahimi    aprilfool
101*22dc650dSSadaf Ebrahimi 0: aprilfool
102*22dc650dSSadaf Ebrahimi
103*22dc650dSSadaf Ebrahimi/*ob*a*r*/
104*22dc650dSSadaf Ebrahimi(?s)\A[^/]*?ob(*COMMIT)[^/]*?a(*COMMIT)[^/]*?r(*COMMIT)[^/]*+\z
105*22dc650dSSadaf Ebrahimi    foobar
106*22dc650dSSadaf Ebrahimi 0: foobar
107*22dc650dSSadaf Ebrahimi
108*22dc650dSSadaf Ebrahimi/*ab/
109*22dc650dSSadaf Ebrahimi(?s)\A[^/]*?ab\z
110*22dc650dSSadaf Ebrahimi    aaaaaaabababab
111*22dc650dSSadaf Ebrahimi 0: aaaaaaabababab
112*22dc650dSSadaf Ebrahimi
113*22dc650dSSadaf Ebrahimi/foo\*/
114*22dc650dSSadaf Ebrahimi(?s)\Afoo\*\z
115*22dc650dSSadaf Ebrahimi    foo*
116*22dc650dSSadaf Ebrahimi 0: foo*
117*22dc650dSSadaf Ebrahimi
118*22dc650dSSadaf Ebrahimi/foo\*bar/
119*22dc650dSSadaf Ebrahimi(?s)\Afoo\*bar\z
120*22dc650dSSadaf Ebrahimi\= Expect no match
121*22dc650dSSadaf Ebrahimi    foobar
122*22dc650dSSadaf EbrahimiNo match
123*22dc650dSSadaf Ebrahimi
124*22dc650dSSadaf Ebrahimi/f\\oo/
125*22dc650dSSadaf Ebrahimi(?s)\Af\\oo\z
126*22dc650dSSadaf Ebrahimi    f\\oo
127*22dc650dSSadaf Ebrahimi 0: f\oo
128*22dc650dSSadaf Ebrahimi
129*22dc650dSSadaf Ebrahimi/*[al]?/
130*22dc650dSSadaf Ebrahimi(?s)\A[^/]*?[al][^/]\z
131*22dc650dSSadaf Ebrahimi    ball
132*22dc650dSSadaf Ebrahimi 0: ball
133*22dc650dSSadaf Ebrahimi
134*22dc650dSSadaf Ebrahimi/[ten]/
135*22dc650dSSadaf Ebrahimi(?s)\A[ten]\z
136*22dc650dSSadaf Ebrahimi\= Expect no match
137*22dc650dSSadaf Ebrahimi    ten
138*22dc650dSSadaf EbrahimiNo match
139*22dc650dSSadaf Ebrahimi
140*22dc650dSSadaf Ebrahimi/t[a-g]n/
141*22dc650dSSadaf Ebrahimi(?s)\At[a-g]n\z
142*22dc650dSSadaf Ebrahimi    ten
143*22dc650dSSadaf Ebrahimi 0: ten
144*22dc650dSSadaf Ebrahimi
145*22dc650dSSadaf Ebrahimi/a[]]b/
146*22dc650dSSadaf Ebrahimi(?s)\Aa[\]]b\z
147*22dc650dSSadaf Ebrahimi    a]b
148*22dc650dSSadaf Ebrahimi 0: a]b
149*22dc650dSSadaf Ebrahimi
150*22dc650dSSadaf Ebrahimi/a[]a-]b/
151*22dc650dSSadaf Ebrahimi(?s)\Aa[\]a\-]b\z
152*22dc650dSSadaf Ebrahimi
153*22dc650dSSadaf Ebrahimi/a[]-]b/
154*22dc650dSSadaf Ebrahimi(?s)\Aa[\]\-]b\z
155*22dc650dSSadaf Ebrahimi    a-b
156*22dc650dSSadaf Ebrahimi 0: a-b
157*22dc650dSSadaf Ebrahimi    a]b
158*22dc650dSSadaf Ebrahimi 0: a]b
159*22dc650dSSadaf Ebrahimi\= Expect no match
160*22dc650dSSadaf Ebrahimi    aab
161*22dc650dSSadaf EbrahimiNo match
162*22dc650dSSadaf Ebrahimi
163*22dc650dSSadaf Ebrahimi/a[]a-z]b/
164*22dc650dSSadaf Ebrahimi(?s)\Aa[\]a-z]b\z
165*22dc650dSSadaf Ebrahimi    aab
166*22dc650dSSadaf Ebrahimi 0: aab
167*22dc650dSSadaf Ebrahimi
168*22dc650dSSadaf Ebrahimi/]/
169*22dc650dSSadaf Ebrahimi(?s)\A\]\z
170*22dc650dSSadaf Ebrahimi    ]
171*22dc650dSSadaf Ebrahimi 0: ]
172*22dc650dSSadaf Ebrahimi
173*22dc650dSSadaf Ebrahimi/t[!a-g]n/
174*22dc650dSSadaf Ebrahimi(?s)\At[^/a-g]n\z
175*22dc650dSSadaf Ebrahimi    ton
176*22dc650dSSadaf Ebrahimi 0: ton
177*22dc650dSSadaf Ebrahimi\= Expect no match
178*22dc650dSSadaf Ebrahimi    ten
179*22dc650dSSadaf EbrahimiNo match
180*22dc650dSSadaf Ebrahimi
181*22dc650dSSadaf Ebrahimi'[[:alpha:]][[:digit:]][[:upper:]]'
182*22dc650dSSadaf Ebrahimi(?s)\A[[:alpha:]][[:digit:]][[:upper:]]\z
183*22dc650dSSadaf Ebrahimi    a1B
184*22dc650dSSadaf Ebrahimi 0: a1B
185*22dc650dSSadaf Ebrahimi
186*22dc650dSSadaf Ebrahimi'[[:digit:][:upper:][:space:]]'
187*22dc650dSSadaf Ebrahimi(?s)\A[[:digit:][:upper:][:space:]]\z
188*22dc650dSSadaf Ebrahimi    A
189*22dc650dSSadaf Ebrahimi 0: A
190*22dc650dSSadaf Ebrahimi    1
191*22dc650dSSadaf Ebrahimi 0: 1
192*22dc650dSSadaf Ebrahimi    \ \=
193*22dc650dSSadaf Ebrahimi 0:
194*22dc650dSSadaf Ebrahimi\= Expect no match
195*22dc650dSSadaf Ebrahimi    a
196*22dc650dSSadaf EbrahimiNo match
197*22dc650dSSadaf Ebrahimi    .
198*22dc650dSSadaf EbrahimiNo match
199*22dc650dSSadaf Ebrahimi
200*22dc650dSSadaf Ebrahimi'[a-c[:digit:]x-z]'
201*22dc650dSSadaf Ebrahimi(?s)\A[a-c[:digit:]x-z]\z
202*22dc650dSSadaf Ebrahimi    5
203*22dc650dSSadaf Ebrahimi 0: 5
204*22dc650dSSadaf Ebrahimi    b
205*22dc650dSSadaf Ebrahimi 0: b
206*22dc650dSSadaf Ebrahimi    y
207*22dc650dSSadaf Ebrahimi 0: y
208*22dc650dSSadaf Ebrahimi\= Expect no match
209*22dc650dSSadaf Ebrahimi    q
210*22dc650dSSadaf EbrahimiNo match
211*22dc650dSSadaf Ebrahimi
212*22dc650dSSadaf Ebrahimi# End of gitwildmatch tests
213*22dc650dSSadaf Ebrahimi
214*22dc650dSSadaf Ebrahimi/*.j?g/
215*22dc650dSSadaf Ebrahimi(?s)\A[^/]*?\.j[^/]g\z
216*22dc650dSSadaf Ebrahimi    pic01.jpg
217*22dc650dSSadaf Ebrahimi 0: pic01.jpg
218*22dc650dSSadaf Ebrahimi    .jpg
219*22dc650dSSadaf Ebrahimi 0: .jpg
220*22dc650dSSadaf Ebrahimi    pic02.jxg
221*22dc650dSSadaf Ebrahimi 0: pic02.jxg
222*22dc650dSSadaf Ebrahimi\= Expect no match
223*22dc650dSSadaf Ebrahimi    pic03.j/g
224*22dc650dSSadaf EbrahimiNo match
225*22dc650dSSadaf Ebrahimi
226*22dc650dSSadaf Ebrahimi/A[+-0]B/
227*22dc650dSSadaf Ebrahimi(?s)\AA[+-0](?<!/)B\z
228*22dc650dSSadaf Ebrahimi    A+B
229*22dc650dSSadaf Ebrahimi 0: A+B
230*22dc650dSSadaf Ebrahimi    A.B
231*22dc650dSSadaf Ebrahimi 0: A.B
232*22dc650dSSadaf Ebrahimi    A0B
233*22dc650dSSadaf Ebrahimi 0: A0B
234*22dc650dSSadaf Ebrahimi\= Expect no match
235*22dc650dSSadaf Ebrahimi    A/B
236*22dc650dSSadaf EbrahimiNo match
237*22dc650dSSadaf Ebrahimi
238*22dc650dSSadaf Ebrahimi/*x?z/
239*22dc650dSSadaf Ebrahimi(?s)\A[^/]*?x[^/]z\z
240*22dc650dSSadaf Ebrahimi    abc.xyz
241*22dc650dSSadaf Ebrahimi 0: abc.xyz
242*22dc650dSSadaf Ebrahimi\= Expect no match
243*22dc650dSSadaf Ebrahimi    .xyz
244*22dc650dSSadaf Ebrahimi 0: .xyz
245*22dc650dSSadaf Ebrahimi
246*22dc650dSSadaf Ebrahimi/?x?z/
247*22dc650dSSadaf Ebrahimi(?s)\A[^/]x[^/]z\z
248*22dc650dSSadaf Ebrahimi    axyz
249*22dc650dSSadaf Ebrahimi 0: axyz
250*22dc650dSSadaf Ebrahimi\= Expect no match
251*22dc650dSSadaf Ebrahimi    .xyz
252*22dc650dSSadaf Ebrahimi 0: .xyz
253*22dc650dSSadaf Ebrahimi
254*22dc650dSSadaf Ebrahimi"[,-0]x?z"
255*22dc650dSSadaf Ebrahimi(?s)\A[,-0](?<!/)x[^/]z\z
256*22dc650dSSadaf Ebrahimi    ,xyz
257*22dc650dSSadaf Ebrahimi 0: ,xyz
258*22dc650dSSadaf Ebrahimi\= Expect no match
259*22dc650dSSadaf Ebrahimi    /xyz
260*22dc650dSSadaf EbrahimiNo match
261*22dc650dSSadaf Ebrahimi    .xyz
262*22dc650dSSadaf Ebrahimi 0: .xyz
263*22dc650dSSadaf Ebrahimi
264*22dc650dSSadaf Ebrahimi".x*"
265*22dc650dSSadaf Ebrahimi(?s)\A\.x(*COMMIT)[^/]*+\z
266*22dc650dSSadaf Ebrahimi    .xabc
267*22dc650dSSadaf Ebrahimi 0: .xabc
268*22dc650dSSadaf Ebrahimi
269*22dc650dSSadaf Ebrahimi/a[--0]z/
270*22dc650dSSadaf Ebrahimi(?s)\Aa[\--0](?<!/)z\z
271*22dc650dSSadaf Ebrahimi    a-z
272*22dc650dSSadaf Ebrahimi 0: a-z
273*22dc650dSSadaf Ebrahimi    a.z
274*22dc650dSSadaf Ebrahimi 0: a.z
275*22dc650dSSadaf Ebrahimi    a0z
276*22dc650dSSadaf Ebrahimi 0: a0z
277*22dc650dSSadaf Ebrahimi\= Expect no match
278*22dc650dSSadaf Ebrahimi    a/z
279*22dc650dSSadaf EbrahimiNo match
280*22dc650dSSadaf Ebrahimi    a1z
281*22dc650dSSadaf EbrahimiNo match
282*22dc650dSSadaf Ebrahimi
283*22dc650dSSadaf Ebrahimi/<[a-c-d]>/
284*22dc650dSSadaf Ebrahimi(?s)\A<[a-c\-d]>\z
285*22dc650dSSadaf Ebrahimi    <a>
286*22dc650dSSadaf Ebrahimi 0: <a>
287*22dc650dSSadaf Ebrahimi    <b>
288*22dc650dSSadaf Ebrahimi 0: <b>
289*22dc650dSSadaf Ebrahimi    <c>
290*22dc650dSSadaf Ebrahimi 0: <c>
291*22dc650dSSadaf Ebrahimi    <d>
292*22dc650dSSadaf Ebrahimi 0: <d>
293*22dc650dSSadaf Ebrahimi    <->
294*22dc650dSSadaf Ebrahimi 0: <->
295*22dc650dSSadaf Ebrahimi
296*22dc650dSSadaf Ebrahimi/a[[:digit:].]z/
297*22dc650dSSadaf Ebrahimi(?s)\Aa[[:digit:].]z\z
298*22dc650dSSadaf Ebrahimi    a1z
299*22dc650dSSadaf Ebrahimi 0: a1z
300*22dc650dSSadaf Ebrahimi    a.z
301*22dc650dSSadaf Ebrahimi 0: a.z
302*22dc650dSSadaf Ebrahimi\= Expect no match
303*22dc650dSSadaf Ebrahimi    a:z
304*22dc650dSSadaf EbrahimiNo match
305*22dc650dSSadaf Ebrahimi
306*22dc650dSSadaf Ebrahimi/a[[:digit].]z/
307*22dc650dSSadaf Ebrahimi(?s)\Aa[\[:digit]\.\]z\z
308*22dc650dSSadaf Ebrahimi    a[.]z
309*22dc650dSSadaf Ebrahimi 0: a[.]z
310*22dc650dSSadaf Ebrahimi    a:.]z
311*22dc650dSSadaf Ebrahimi 0: a:.]z
312*22dc650dSSadaf Ebrahimi    ad.]z
313*22dc650dSSadaf Ebrahimi 0: ad.]z
314*22dc650dSSadaf Ebrahimi
315*22dc650dSSadaf Ebrahimi/<[[:a[:digit:]b]>/
316*22dc650dSSadaf Ebrahimi(?s)\A<[\[:a[:digit:]b]>\z
317*22dc650dSSadaf Ebrahimi    <[>
318*22dc650dSSadaf Ebrahimi 0: <[>
319*22dc650dSSadaf Ebrahimi    <:>
320*22dc650dSSadaf Ebrahimi 0: <:>
321*22dc650dSSadaf Ebrahimi    <a>
322*22dc650dSSadaf Ebrahimi 0: <a>
323*22dc650dSSadaf Ebrahimi    <9>
324*22dc650dSSadaf Ebrahimi 0: <9>
325*22dc650dSSadaf Ebrahimi    <b>
326*22dc650dSSadaf Ebrahimi 0: <b>
327*22dc650dSSadaf Ebrahimi\= Expect no match
328*22dc650dSSadaf Ebrahimi    <d>
329*22dc650dSSadaf EbrahimiNo match
330*22dc650dSSadaf Ebrahimi
331*22dc650dSSadaf Ebrahimi/a*b/convert_glob_separator=\
332*22dc650dSSadaf Ebrahimi(?s)\Aa(*COMMIT)[^\\]*?b\z
333*22dc650dSSadaf Ebrahimi
334*22dc650dSSadaf Ebrahimi/a*b/convert_glob_separator=.
335*22dc650dSSadaf Ebrahimi(?s)\Aa(*COMMIT)[^\.]*?b\z
336*22dc650dSSadaf Ebrahimi
337*22dc650dSSadaf Ebrahimi/a*b/convert_glob_separator=/
338*22dc650dSSadaf Ebrahimi(?s)\Aa(*COMMIT)[^/]*?b\z
339*22dc650dSSadaf Ebrahimi
340*22dc650dSSadaf Ebrahimi# Non control character checking
341*22dc650dSSadaf Ebrahimi
342*22dc650dSSadaf Ebrahimi/A\B\\C\D/
343*22dc650dSSadaf Ebrahimi(?s)\AAB\\CD\z
344*22dc650dSSadaf Ebrahimi
345*22dc650dSSadaf Ebrahimi/\\{}\?\*+\[\]()|.^$/
346*22dc650dSSadaf Ebrahimi(?s)\A\\\{\}\?\*\+\[\]\(\)\|\.\^\$\z
347*22dc650dSSadaf Ebrahimi
348*22dc650dSSadaf Ebrahimi/*a*\/*b*/
349*22dc650dSSadaf Ebrahimi(?s)\A[^/]*?a(*COMMIT)[^/]*?/(*COMMIT)[^/]*?b(*COMMIT)[^/]*+\z
350*22dc650dSSadaf Ebrahimi
351*22dc650dSSadaf Ebrahimi/?a?\/?b?/
352*22dc650dSSadaf Ebrahimi(?s)\A[^/]a[^/]/[^/]b[^/]\z
353*22dc650dSSadaf Ebrahimi
354*22dc650dSSadaf Ebrahimi/[a\\b\c][]][-][\]\-]/
355*22dc650dSSadaf Ebrahimi(?s)\A[a\\bc][\]][\-][\]\-]\z
356*22dc650dSSadaf Ebrahimi
357*22dc650dSSadaf Ebrahimi/[^a\\b\c][!]][!-][^\]\-]/
358*22dc650dSSadaf Ebrahimi(?s)\A[^/a\\bc][^/\]][^/\-][^/\]\-]\z
359*22dc650dSSadaf Ebrahimi
360*22dc650dSSadaf Ebrahimi/[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]]/
361*22dc650dSSadaf Ebrahimi(?s)\A[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]](?<!/)\z
362*22dc650dSSadaf Ebrahimi
363*22dc650dSSadaf Ebrahimi"[/-/]"
364*22dc650dSSadaf Ebrahimi(?s)\A[/-/](?<!/)\z
365*22dc650dSSadaf Ebrahimi
366*22dc650dSSadaf Ebrahimi/[-----]/
367*22dc650dSSadaf Ebrahimi(?s)\A[\--\-\-\-]\z
368*22dc650dSSadaf Ebrahimi
369*22dc650dSSadaf Ebrahimi/[------]/
370*22dc650dSSadaf Ebrahimi(?s)\A[\--\-\--\-]\z
371*22dc650dSSadaf Ebrahimi
372*22dc650dSSadaf Ebrahimi/[!------]/
373*22dc650dSSadaf Ebrahimi(?s)\A[^/\--\-\--\-]\z
374*22dc650dSSadaf Ebrahimi
375*22dc650dSSadaf Ebrahimi/[[:alpha:]-a]/
376*22dc650dSSadaf Ebrahimi(?s)\A[[:alpha:]\-a]\z
377*22dc650dSSadaf Ebrahimi
378*22dc650dSSadaf Ebrahimi/[[:alpha:]][[:punct:]][[:ascii:]]/
379*22dc650dSSadaf Ebrahimi(?s)\A[[:alpha:]][[:punct:]](?<!/)[[:ascii:]](?<!/)\z
380*22dc650dSSadaf Ebrahimi
381*22dc650dSSadaf Ebrahimi/[a-[:alpha:]]/
382*22dc650dSSadaf Ebrahimi** Pattern conversion error at offset 4: invalid syntax
383*22dc650dSSadaf Ebrahimi
384*22dc650dSSadaf Ebrahimi/[[:alpha:/
385*22dc650dSSadaf Ebrahimi** Pattern conversion error at offset 9: missing terminating ] for character class
386*22dc650dSSadaf Ebrahimi
387*22dc650dSSadaf Ebrahimi/[[:alpha:]/
388*22dc650dSSadaf Ebrahimi** Pattern conversion error at offset 10: missing terminating ] for character class
389*22dc650dSSadaf Ebrahimi
390*22dc650dSSadaf Ebrahimi/[[:alphaa:]]/
391*22dc650dSSadaf Ebrahimi(?s)\A[\[:alphaa:]\]\z
392*22dc650dSSadaf Ebrahimi
393*22dc650dSSadaf Ebrahimi/[[:xdigi:]]/
394*22dc650dSSadaf Ebrahimi(?s)\A[\[:xdigi:]\]\z
395*22dc650dSSadaf Ebrahimi
396*22dc650dSSadaf Ebrahimi/[[:xdigit::]]/
397*22dc650dSSadaf Ebrahimi(?s)\A[\[:xdigit::]\]\z
398*22dc650dSSadaf Ebrahimi
399*22dc650dSSadaf Ebrahimi/****/
400*22dc650dSSadaf Ebrahimi(?s)
401*22dc650dSSadaf Ebrahimi
402*22dc650dSSadaf Ebrahimi/**\/abc/
403*22dc650dSSadaf Ebrahimi(?s)(?:\A|/)abc\z
404*22dc650dSSadaf Ebrahimi  abc
405*22dc650dSSadaf Ebrahimi 0: abc
406*22dc650dSSadaf Ebrahimi  x/abc
407*22dc650dSSadaf Ebrahimi 0: /abc
408*22dc650dSSadaf Ebrahimi  xabc
409*22dc650dSSadaf EbrahimiNo match
410*22dc650dSSadaf Ebrahimi
411*22dc650dSSadaf Ebrahimi/abc\/**/
412*22dc650dSSadaf Ebrahimi(?s)\Aabc/
413*22dc650dSSadaf Ebrahimi
414*22dc650dSSadaf Ebrahimi/abc\/**\/abc/
415*22dc650dSSadaf Ebrahimi(?s)\Aabc/(*COMMIT)(?:.*?/)??abc\z
416*22dc650dSSadaf Ebrahimi
417*22dc650dSSadaf Ebrahimi/**\/*a*b*g*n*t/
418*22dc650dSSadaf Ebrahimi(?s)(?:\A|/)(?>[^/]*?a)(?>[^/]*?b)(?>[^/]*?g)(?>[^/]*?n)(?>[^/]*?t\z)
419*22dc650dSSadaf Ebrahimi  abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt
420*22dc650dSSadaf Ebrahimi 0: /abcdefghijklmnop.txt
421*22dc650dSSadaf Ebrahimi
422*22dc650dSSadaf Ebrahimi/**\/*a*\/**/
423*22dc650dSSadaf Ebrahimi(?s)(?:\A|/)(?>[^/]*?a)(?>[^/]*?/)
424*22dc650dSSadaf Ebrahimi  xx/xx/xx/xax/xx/xb
425*22dc650dSSadaf Ebrahimi 0: /xax/
426*22dc650dSSadaf Ebrahimi
427*22dc650dSSadaf Ebrahimi/**\/*a*/
428*22dc650dSSadaf Ebrahimi(?s)(?:\A|/)(?>[^/]*?a)(?>[^/]*+\z)
429*22dc650dSSadaf Ebrahimi  xx/xx/xx/xax
430*22dc650dSSadaf Ebrahimi 0: /xax
431*22dc650dSSadaf Ebrahimi  xx/xx/xx/xax/xx
432*22dc650dSSadaf EbrahimiNo match
433*22dc650dSSadaf Ebrahimi
434*22dc650dSSadaf Ebrahimi/**\/*a*\/**\/*b*/
435*22dc650dSSadaf Ebrahimi(?s)(?:\A|/)(?>[^/]*?a)(?>[^/]*?/)(*COMMIT)(?:.*?/)??(?>[^/]*?b)(?>[^/]*+\z)
436*22dc650dSSadaf Ebrahimi  xx/xx/xx/xax/xx/xb
437*22dc650dSSadaf Ebrahimi 0: /xax/xx/xb
438*22dc650dSSadaf Ebrahimi  xx/xx/xx/xax/xx/x
439*22dc650dSSadaf EbrahimiNo match
440*22dc650dSSadaf Ebrahimi
441*22dc650dSSadaf Ebrahimi"**a"convert=glob
442*22dc650dSSadaf Ebrahimi(?s)a\z
443*22dc650dSSadaf Ebrahimi  a
444*22dc650dSSadaf Ebrahimi 0: a
445*22dc650dSSadaf Ebrahimi  c/b/a
446*22dc650dSSadaf Ebrahimi 0: a
447*22dc650dSSadaf Ebrahimi  c/b/aaa
448*22dc650dSSadaf Ebrahimi 0: a
449*22dc650dSSadaf Ebrahimi
450*22dc650dSSadaf Ebrahimi"a**/b"convert=glob
451*22dc650dSSadaf Ebrahimi(?s)\Aa(*COMMIT).*?/b\z
452*22dc650dSSadaf Ebrahimi  a/b
453*22dc650dSSadaf Ebrahimi 0: a/b
454*22dc650dSSadaf Ebrahimi  ab
455*22dc650dSSadaf EbrahimiNo match
456*22dc650dSSadaf Ebrahimi
457*22dc650dSSadaf Ebrahimi"a/**b"convert=glob
458*22dc650dSSadaf Ebrahimi(?s)\Aa/(*COMMIT).*?b\z
459*22dc650dSSadaf Ebrahimi  a/b
460*22dc650dSSadaf Ebrahimi 0: a/b
461*22dc650dSSadaf Ebrahimi  ab
462*22dc650dSSadaf EbrahimiNo match
463*22dc650dSSadaf Ebrahimi
464*22dc650dSSadaf Ebrahimi#pattern convert=glob:glob_no_starstar
465*22dc650dSSadaf Ebrahimi
466*22dc650dSSadaf Ebrahimi/***/
467*22dc650dSSadaf Ebrahimi(?s)\A[^/]*+\z
468*22dc650dSSadaf Ebrahimi
469*22dc650dSSadaf Ebrahimi/**a**/
470*22dc650dSSadaf Ebrahimi(?s)\A[^/]*?a(*COMMIT)[^/]*+\z
471*22dc650dSSadaf Ebrahimi
472*22dc650dSSadaf Ebrahimi#pattern convert=unset
473*22dc650dSSadaf Ebrahimi#pattern convert=glob:glob_no_wild_separator
474*22dc650dSSadaf Ebrahimi
475*22dc650dSSadaf Ebrahimi/*/
476*22dc650dSSadaf Ebrahimi(?s)
477*22dc650dSSadaf Ebrahimi
478*22dc650dSSadaf Ebrahimi/*a*/
479*22dc650dSSadaf Ebrahimi(?s)a
480*22dc650dSSadaf Ebrahimi
481*22dc650dSSadaf Ebrahimi/**a**/
482*22dc650dSSadaf Ebrahimi(?s)a
483*22dc650dSSadaf Ebrahimi
484*22dc650dSSadaf Ebrahimi/a*b/
485*22dc650dSSadaf Ebrahimi(?s)\Aa(*COMMIT).*?b\z
486*22dc650dSSadaf Ebrahimi
487*22dc650dSSadaf Ebrahimi/*a*b*/
488*22dc650dSSadaf Ebrahimi(?s)a(*COMMIT).*?b
489*22dc650dSSadaf Ebrahimi
490*22dc650dSSadaf Ebrahimi/??a??/
491*22dc650dSSadaf Ebrahimi(?s)\A..a..\z
492*22dc650dSSadaf Ebrahimi
493*22dc650dSSadaf Ebrahimi#pattern convert=unset
494*22dc650dSSadaf Ebrahimi#pattern convert=glob,convert_glob_escape=0
495*22dc650dSSadaf Ebrahimi
496*22dc650dSSadaf Ebrahimi/a\b\cd/
497*22dc650dSSadaf Ebrahimi(?s)\Aa\\b\\cd\z
498*22dc650dSSadaf Ebrahimi
499*22dc650dSSadaf Ebrahimi/**\/a/
500*22dc650dSSadaf Ebrahimi(?s)\\/a\z
501*22dc650dSSadaf Ebrahimi
502*22dc650dSSadaf Ebrahimi/a`*b/convert_glob_escape=`
503*22dc650dSSadaf Ebrahimi(?s)\Aa\*b\z
504*22dc650dSSadaf Ebrahimi
505*22dc650dSSadaf Ebrahimi/a`*b/convert_glob_escape=0
506*22dc650dSSadaf Ebrahimi(?s)\Aa`(*COMMIT)[^/]*?b\z
507*22dc650dSSadaf Ebrahimi
508*22dc650dSSadaf Ebrahimi/a`*b/convert_glob_escape=x
509*22dc650dSSadaf Ebrahimi** Invalid glob escape 'x'
510*22dc650dSSadaf Ebrahimi
511*22dc650dSSadaf Ebrahimi# -------- Tests of extended POSIX conversion --------
512*22dc650dSSadaf Ebrahimi
513*22dc650dSSadaf Ebrahimi#pattern convert=unset:posix_extended
514*22dc650dSSadaf Ebrahimi
515*22dc650dSSadaf Ebrahimi/<[[:a[:digit:]b]>/
516*22dc650dSSadaf Ebrahimi(*NUL)<[[:a[:digit:]b]>
517*22dc650dSSadaf Ebrahimi    <[>
518*22dc650dSSadaf Ebrahimi 0: <[>
519*22dc650dSSadaf Ebrahimi    <:>
520*22dc650dSSadaf Ebrahimi 0: <:>
521*22dc650dSSadaf Ebrahimi    <a>
522*22dc650dSSadaf Ebrahimi 0: <a>
523*22dc650dSSadaf Ebrahimi    <9>
524*22dc650dSSadaf Ebrahimi 0: <9>
525*22dc650dSSadaf Ebrahimi    <b>
526*22dc650dSSadaf Ebrahimi 0: <b>
527*22dc650dSSadaf Ebrahimi\= Expect no match
528*22dc650dSSadaf Ebrahimi    <d>
529*22dc650dSSadaf EbrahimiNo match
530*22dc650dSSadaf Ebrahimi
531*22dc650dSSadaf Ebrahimi/a+\1b\\c|d[ab\c]/
532*22dc650dSSadaf Ebrahimi(*NUL)a+1b\\c|d[ab\\c]
533*22dc650dSSadaf Ebrahimi
534*22dc650dSSadaf Ebrahimi/<[]bc]>/
535*22dc650dSSadaf Ebrahimi(*NUL)<[]bc]>
536*22dc650dSSadaf Ebrahimi    <]>
537*22dc650dSSadaf Ebrahimi 0: <]>
538*22dc650dSSadaf Ebrahimi    <b>
539*22dc650dSSadaf Ebrahimi 0: <b>
540*22dc650dSSadaf Ebrahimi    <c>
541*22dc650dSSadaf Ebrahimi 0: <c>
542*22dc650dSSadaf Ebrahimi
543*22dc650dSSadaf Ebrahimi/<[^]bc]>/
544*22dc650dSSadaf Ebrahimi(*NUL)<[^]bc]>
545*22dc650dSSadaf Ebrahimi    <.>
546*22dc650dSSadaf Ebrahimi 0: <.>
547*22dc650dSSadaf Ebrahimi\= Expect no match
548*22dc650dSSadaf Ebrahimi    <]>
549*22dc650dSSadaf EbrahimiNo match
550*22dc650dSSadaf Ebrahimi    <b>
551*22dc650dSSadaf EbrahimiNo match
552*22dc650dSSadaf Ebrahimi
553*22dc650dSSadaf Ebrahimi/(a)\1b/
554*22dc650dSSadaf Ebrahimi(*NUL)(a)1b
555*22dc650dSSadaf Ebrahimi    a1b
556*22dc650dSSadaf Ebrahimi 0: a1b
557*22dc650dSSadaf Ebrahimi 1: a
558*22dc650dSSadaf Ebrahimi\= Expect no match
559*22dc650dSSadaf Ebrahimi    aab
560*22dc650dSSadaf EbrahimiNo match
561*22dc650dSSadaf Ebrahimi
562*22dc650dSSadaf Ebrahimi/(ab)c)d]/
563*22dc650dSSadaf Ebrahimi(*NUL)(ab)c\)d\]
564*22dc650dSSadaf Ebrahimi    Xabc)d]Y
565*22dc650dSSadaf Ebrahimi 0: abc)d]
566*22dc650dSSadaf Ebrahimi 1: ab
567*22dc650dSSadaf Ebrahimi
568*22dc650dSSadaf Ebrahimi/a***b/
569*22dc650dSSadaf Ebrahimi(*NUL)a*b
570*22dc650dSSadaf Ebrahimi
571*22dc650dSSadaf Ebrahimi# -------- Tests of basic POSIX conversion --------
572*22dc650dSSadaf Ebrahimi
573*22dc650dSSadaf Ebrahimi#pattern convert=unset:posix_basic
574*22dc650dSSadaf Ebrahimi
575*22dc650dSSadaf Ebrahimi/a*b+c\+[def](ab)\(cd\)/
576*22dc650dSSadaf Ebrahimi(*NUL)a*b\+c\+[def]\(ab\)(cd)
577*22dc650dSSadaf Ebrahimi
578*22dc650dSSadaf Ebrahimi/\(a\)\1b/
579*22dc650dSSadaf Ebrahimi(*NUL)(a)\1b
580*22dc650dSSadaf Ebrahimi    aab
581*22dc650dSSadaf Ebrahimi 0: aab
582*22dc650dSSadaf Ebrahimi 1: a
583*22dc650dSSadaf Ebrahimi\= Expect no match
584*22dc650dSSadaf Ebrahimi    a1b
585*22dc650dSSadaf EbrahimiNo match
586*22dc650dSSadaf Ebrahimi
587*22dc650dSSadaf Ebrahimi/how.to how\.to/
588*22dc650dSSadaf Ebrahimi(*NUL)how.to how\.to
589*22dc650dSSadaf Ebrahimi    how\nto how.to
590*22dc650dSSadaf Ebrahimi 0: how\x0ato how.to
591*22dc650dSSadaf Ebrahimi\= Expect no match
592*22dc650dSSadaf Ebrahimi    how\x{0}to how.to
593*22dc650dSSadaf EbrahimiNo match
594*22dc650dSSadaf Ebrahimi
595*22dc650dSSadaf Ebrahimi/^how to \^how to/
596*22dc650dSSadaf Ebrahimi(*NUL)^how to \^how to
597*22dc650dSSadaf Ebrahimi
598*22dc650dSSadaf Ebrahimi/^*abc/
599*22dc650dSSadaf Ebrahimi(*NUL)^\*abc
600*22dc650dSSadaf Ebrahimi
601*22dc650dSSadaf Ebrahimi/*abc/
602*22dc650dSSadaf Ebrahimi(*NUL)\*abc
603*22dc650dSSadaf Ebrahimi    X*abcY
604*22dc650dSSadaf Ebrahimi 0: *abc
605*22dc650dSSadaf Ebrahimi
606*22dc650dSSadaf Ebrahimi/**abc/
607*22dc650dSSadaf Ebrahimi(*NUL)\**abc
608*22dc650dSSadaf Ebrahimi    XabcY
609*22dc650dSSadaf Ebrahimi 0: abc
610*22dc650dSSadaf Ebrahimi    X*abcY
611*22dc650dSSadaf Ebrahimi 0: *abc
612*22dc650dSSadaf Ebrahimi    X**abcY
613*22dc650dSSadaf Ebrahimi 0: **abc
614*22dc650dSSadaf Ebrahimi
615*22dc650dSSadaf Ebrahimi/*ab\(*cd\)/
616*22dc650dSSadaf Ebrahimi(*NUL)\*ab(\*cd)
617*22dc650dSSadaf Ebrahimi
618*22dc650dSSadaf Ebrahimi/^b\(c^d\)\(^e^f\)/
619*22dc650dSSadaf Ebrahimi(*NUL)^b(c\^d)(^e\^f)
620*22dc650dSSadaf Ebrahimi
621*22dc650dSSadaf Ebrahimi/a***b/
622*22dc650dSSadaf Ebrahimi(*NUL)a*b
623*22dc650dSSadaf Ebrahimi
624*22dc650dSSadaf Ebrahimi# End of testinput24
625