sparc: Fix sparc64 memmove length comparison (BZ 31266)
[glibc.git] / posix / tst-fnmatch.input
blobe4a41e50cbbf9591bd23fa4cbbe1823e01b74273
1 # Tests for fnmatch.
2 # Copyright (C) 2000-2024 Free Software Foundation, Inc.
3 # This file is part of the GNU C Library.
4 # Contributes by Ulrich Drepper <drepper@redhat.com>.
7 # The GNU C Library is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU Lesser General Public
9 # License as published by the Free Software Foundation; either
10 # version 2.1 of the License, or (at your option) any later version.
12 # The GNU C Library is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 # Lesser General Public License for more details.
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with the GNU C Library; if not, see
19 # <https://www.gnu.org/licenses/>.
22 # Derived from the IEEE 2003.2 text.  The standard only contains some
23 # wording describing the situations to be tested.  It does not specify
24 # any specific tests.  I.e., the tests below are in no case sufficient.
25 # They are hopefully necessary, though.
27 # See:
29 # http://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap09.html
31 # > RE Bracket Expression
32 # >
33 # > Range expressions are, historically, an integral part of REs.
34 # > However, the requirements of "natural language behavior" and
35 # > portability do conflict. In the POSIX locale, ranges must be treated
36 # > according to the collating sequence and include such characters that
37 # > fall within the range based on that collating sequence, regardless
38 # > of character values. In other locales, ranges have unspecified behavior.
39 # > ...
40 # > The current standard leaves unspecified the behavior of a range
41 # > expression outside the POSIX locale. This makes it clearer that
42 # > conforming applications should avoid range expressions outside the
43 # > POSIX locale, and it allows implementations and compatible user-mode
44 # > matchers to interpret range expressions using native order, CEO,
45 # > collation sequence, or other, more advanced techniques. The concerns
46 # > which led to this change were raised in IEEE PASC interpretation
47 # > 1003.2 #43 and others, and related to ambiguities in the
48 # > specification of how multi-character collating elements should be
49 # > handled in range expressions. These ambiguities had led to multiple
50 # > interpretations of the specification, in conflicting ways, which led
51 # > to varying implementations. As noted above, efforts were made to
52 # > resolve the differences, but no solution has been found that would
53 # > be specific enough to allow for portable software while not
54 # > invalidating existing implementations.
56 # Therefore, using [a-z] does not make much sense except in the C/POSIX locale.
57 # The new iso14651_t1_common lists upper case and lower case Latin characters
58 # in a different order than the old one which causes surprising results
59 # for example in the de_DE locale: [a-z] now includes A because A comes
60 # after a in iso14651_t1_common but does not include Z because that comes
61 # after z in iso14651_t1_common.
63 # This lead to several bugs and problems with user scripts that do not
64 # expect [a-z] to match uppercase characters.
66 # See the following bugs:
67 # https://sourceware.org/bugzilla/show_bug.cgi?id=23393
68 # https://sourceware.org/bugzilla/show_bug.cgi?id=23420
70 # No consensus exists on how best to handle the changes so the
71 # iso14651_t1_common collation element order (CEO) has been changed to
72 # deinterlace the a-z and A-Z regions.
74 # With the deinterlacing commit ac3a3b4b0d561d776b60317d6a926050c8541655
75 # could be reverted to re-test the correct non-interleaved expectations.
77 # Please note that despite the region being deinterlaced, the ordering
78 # of collation remains the same.  In glibc we implement CEO and because of
79 # that we can reorder the elements to reorder ranges without impacting
80 # collation which depends on weights.  The collation element ordering
81 # could have been changed to include just a-z, A-Z, and 0-9 in three
82 # distinct blocks, but this needs more discussion by the community.
84 # B.6 004(C)
85 C                "!#%+,-./01234567889"  "!#%+,-./01234567889"  0
86 C                ":;=@ABCDEFGHIJKLMNO"  ":;=@ABCDEFGHIJKLMNO"  0
87 C                "PQRSTUVWXYZ]abcdefg"  "PQRSTUVWXYZ]abcdefg"  0
88 C                "hijklmnopqrstuvwxyz"  "hijklmnopqrstuvwxyz"  0
89 C                "^_{}~"                "^_{}~"                0
91 # B.6 005(C)
92 C                "\"$&'()"              "\\\"\\$\\&\\'\\(\\)"  0
93 C                "*?[\\`|"              "\\*\\?\\[\\\\\\`\\|"  0
94 C                "<>"                   "\\<\\>"               0
96 # B.6 006(C)
97 C                "?*["                  "[?*[][?*[][?*[]"      0
98 C                "a/b"                  "?/b"                  0
100 # B.6 007(C)
101 C                "a/b"                  "a?b"                  0
102 C                "a/b"                  "a/?"                  0
103 C                "aa/b"                 "?/b"                  NOMATCH
104 C                "aa/b"                 "a?b"                  NOMATCH
105 C                "a/bb"                 "a/?"                  NOMATCH
107 # B.6 009(C)
108 C                "abc"                  "[abc]"                NOMATCH
109 C                "x"                    "[abc]"                NOMATCH
110 C                "a"                    "[abc]"                0
111 C                "["                    "[[abc]"               0
112 C                "a"                    "[][abc]"              0
113 C                "a]"                   "[]a]]"                0
115 # B.6 010(C)
116 C                "xyz"                  "[!abc]"               NOMATCH
117 C                "x"                    "[!abc]"               0
118 C                "a"                    "[!abc]"               NOMATCH
120 # B.6 011(C)
121 C                "]"                    "[][abc]"              0
122 C                "abc]"                 "[][abc]"              NOMATCH
123 C                "[]abc"                "[][]abc"              NOMATCH
124 C                "]"                    "[!]]"                 NOMATCH
125 C                "aa]"                  "[!]a]"                NOMATCH
126 C                "]"                    "[!a]"                 0
127 C                "]]"                   "[!a]]"                0
129 # B.6 012(C)
130 C                "a"                    "[[.a.]]"              0
131 C                "-"                    "[[.-.]]"              0
132 C                "-"                    "[[.-.][.].]]"         0
133 C                "-"                    "[[.].][.-.]]"         0
134 C                "-"                    "[[.-.][=u=]]"         0
135 C                "-"                    "[[.-.][:alpha:]]"     0
136 C                "a"                    "[![.a.]]"             NOMATCH
138 # B.6 013(C)
139 C                "a"                    "[[.b.]]"              NOMATCH
140 C                "a"                    "[[.b.][.c.]]"         NOMATCH
141 C                "a"                    "[[.b.][=b=]]"         NOMATCH
144 # B.6 015(C)
145 C                "a"                    "[[=a=]]"              0
146 C                "b"                    "[[=a=]b]"             0
147 C                "b"                    "[[=a=][=b=]]"         0
148 C                "a"                    "[[=a=][=b=]]"         0
149 C                "a"                    "[[=a=][.b.]]"         0
150 C                "a"                    "[[=a=][:digit:]]"     0
152 # B.6 016(C)
153 C                "="                    "[[=a=]b]"             NOMATCH
154 C                "]"                    "[[=a=]b]"             NOMATCH
155 C                "a"                    "[[=b=][=c=]]"         NOMATCH
156 C                "a"                    "[[=b=][.].]]"         NOMATCH
157 C                "a"                    "[[=b=][:digit:]]"     NOMATCH
159 # B.6 017(C)
160 C                "a"                    "[[:alnum:]]"          0
161 C                "a"                    "[![:alnum:]]"         NOMATCH
162 C                "-"                    "[[:alnum:]]"          NOMATCH
163 C                "a]a"                  "[[:alnum:]]a"         NOMATCH
164 C                "-"                    "[[:alnum:]-]"         0
165 C                "aa"                   "[[:alnum:]]a"         0
166 C                "-"                    "[![:alnum:]]"         0
167 C                "]"                    "[!][:alnum:]]"        NOMATCH
168 C                "["                    "[![:alnum:][]"        NOMATCH
169 C                "a"                    "[[:alnum:]]"          0
170 C                "b"                    "[[:alnum:]]"          0
171 C                "c"                    "[[:alnum:]]"          0
172 C                "d"                    "[[:alnum:]]"          0
173 C                "e"                    "[[:alnum:]]"          0
174 C                "f"                    "[[:alnum:]]"          0
175 C                "g"                    "[[:alnum:]]"          0
176 C                "h"                    "[[:alnum:]]"          0
177 C                "i"                    "[[:alnum:]]"          0
178 C                "j"                    "[[:alnum:]]"          0
179 C                "k"                    "[[:alnum:]]"          0
180 C                "l"                    "[[:alnum:]]"          0
181 C                "m"                    "[[:alnum:]]"          0
182 C                "n"                    "[[:alnum:]]"          0
183 C                "o"                    "[[:alnum:]]"          0
184 C                "p"                    "[[:alnum:]]"          0
185 C                "q"                    "[[:alnum:]]"          0
186 C                "r"                    "[[:alnum:]]"          0
187 C                "s"                    "[[:alnum:]]"          0
188 C                "t"                    "[[:alnum:]]"          0
189 C                "u"                    "[[:alnum:]]"          0
190 C                "v"                    "[[:alnum:]]"          0
191 C                "w"                    "[[:alnum:]]"          0
192 C                "x"                    "[[:alnum:]]"          0
193 C                "y"                    "[[:alnum:]]"          0
194 C                "z"                    "[[:alnum:]]"          0
195 C                "A"                    "[[:alnum:]]"          0
196 C                "B"                    "[[:alnum:]]"          0
197 C                "C"                    "[[:alnum:]]"          0
198 C                "D"                    "[[:alnum:]]"          0
199 C                "E"                    "[[:alnum:]]"          0
200 C                "F"                    "[[:alnum:]]"          0
201 C                "G"                    "[[:alnum:]]"          0
202 C                "H"                    "[[:alnum:]]"          0
203 C                "I"                    "[[:alnum:]]"          0
204 C                "J"                    "[[:alnum:]]"          0
205 C                "K"                    "[[:alnum:]]"          0
206 C                "L"                    "[[:alnum:]]"          0
207 C                "M"                    "[[:alnum:]]"          0
208 C                "N"                    "[[:alnum:]]"          0
209 C                "O"                    "[[:alnum:]]"          0
210 C                "P"                    "[[:alnum:]]"          0
211 C                "Q"                    "[[:alnum:]]"          0
212 C                "R"                    "[[:alnum:]]"          0
213 C                "S"                    "[[:alnum:]]"          0
214 C                "T"                    "[[:alnum:]]"          0
215 C                "U"                    "[[:alnum:]]"          0
216 C                "V"                    "[[:alnum:]]"          0
217 C                "W"                    "[[:alnum:]]"          0
218 C                "X"                    "[[:alnum:]]"          0
219 C                "Y"                    "[[:alnum:]]"          0
220 C                "Z"                    "[[:alnum:]]"          0
221 C                "0"                    "[[:alnum:]]"          0
222 C                "1"                    "[[:alnum:]]"          0
223 C                "2"                    "[[:alnum:]]"          0
224 C                "3"                    "[[:alnum:]]"          0
225 C                "4"                    "[[:alnum:]]"          0
226 C                "5"                    "[[:alnum:]]"          0
227 C                "6"                    "[[:alnum:]]"          0
228 C                "7"                    "[[:alnum:]]"          0
229 C                "8"                    "[[:alnum:]]"          0
230 C                "9"                    "[[:alnum:]]"          0
231 C                "!"                    "[[:alnum:]]"          NOMATCH
232 C                "#"                    "[[:alnum:]]"          NOMATCH
233 C                "%"                    "[[:alnum:]]"          NOMATCH
234 C                "+"                    "[[:alnum:]]"          NOMATCH
235 C                ","                    "[[:alnum:]]"          NOMATCH
236 C                "-"                    "[[:alnum:]]"          NOMATCH
237 C                "."                    "[[:alnum:]]"          NOMATCH
238 C                "/"                    "[[:alnum:]]"          NOMATCH
239 C                ":"                    "[[:alnum:]]"          NOMATCH
240 C                ";"                    "[[:alnum:]]"          NOMATCH
241 C                "="                    "[[:alnum:]]"          NOMATCH
242 C                "@"                    "[[:alnum:]]"          NOMATCH
243 C                "["                    "[[:alnum:]]"          NOMATCH
244 C                "\\"                   "[[:alnum:]]"          NOMATCH
245 C                "]"                    "[[:alnum:]]"          NOMATCH
246 C                "^"                    "[[:alnum:]]"          NOMATCH
247 C                "_"                    "[[:alnum:]]"          NOMATCH
248 C                "{"                    "[[:alnum:]]"          NOMATCH
249 C                "}"                    "[[:alnum:]]"          NOMATCH
250 C                "~"                    "[[:alnum:]]"          NOMATCH
251 C                "\""                   "[[:alnum:]]"          NOMATCH
252 C                "$"                    "[[:alnum:]]"          NOMATCH
253 C                "&"                    "[[:alnum:]]"          NOMATCH
254 C                "'"                    "[[:alnum:]]"          NOMATCH
255 C                "("                    "[[:alnum:]]"          NOMATCH
256 C                ")"                    "[[:alnum:]]"          NOMATCH
257 C                "*"                    "[[:alnum:]]"          NOMATCH
258 C                "?"                    "[[:alnum:]]"          NOMATCH
259 C                "`"                    "[[:alnum:]]"          NOMATCH
260 C                "|"                    "[[:alnum:]]"          NOMATCH
261 C                "<"                    "[[:alnum:]]"          NOMATCH
262 C                ">"                    "[[:alnum:]]"          NOMATCH
263 C                "\t"                   "[[:cntrl:]]"          0
264 C                "t"                    "[[:cntrl:]]"          NOMATCH
265 C                "t"                    "[[:lower:]]"          0
266 C                "\t"                   "[[:lower:]]"          NOMATCH
267 C                "T"                    "[[:lower:]]"          NOMATCH
268 C                "\t"                   "[[:space:]]"          0
269 C                "t"                    "[[:space:]]"          NOMATCH
270 C                "t"                    "[[:alpha:]]"          0
271 C                "\t"                   "[[:alpha:]]"          NOMATCH
272 C                "0"                    "[[:digit:]]"          0
273 C                "\t"                   "[[:digit:]]"          NOMATCH
274 C                "t"                    "[[:digit:]]"          NOMATCH
275 C                "\t"                   "[[:print:]]"          NOMATCH
276 C                "t"                    "[[:print:]]"          0
277 C                "T"                    "[[:upper:]]"          0
278 C                "\t"                   "[[:upper:]]"          NOMATCH
279 C                "t"                    "[[:upper:]]"          NOMATCH
280 C                "\t"                   "[[:blank:]]"          0
281 C                "t"                    "[[:blank:]]"          NOMATCH
282 C                "\t"                   "[[:graph:]]"          NOMATCH
283 C                "t"                    "[[:graph:]]"          0
284 C                "."                    "[[:punct:]]"          0
285 C                "t"                    "[[:punct:]]"          NOMATCH
286 C                "\t"                   "[[:punct:]]"          NOMATCH
287 C                "0"                    "[[:xdigit:]]"         0
288 C                "\t"                   "[[:xdigit:]]"         NOMATCH
289 C                "a"                    "[[:xdigit:]]"         0
290 C                "A"                    "[[:xdigit:]]"         0
291 C                "t"                    "[[:xdigit:]]"         NOMATCH
292 C                "a"                    "[[alpha]]"            NOMATCH
293 C                "a"                    "[[alpha:]]"           NOMATCH
294 C                "a]"                   "[[alpha]]"            0
295 C                "a]"                   "[[alpha:]]"           0
296 C                "a"                    "[[:alpha:][.b.]]"     0
297 C                "a"                    "[[:alpha:][=b=]]"     0
298 C                "a"                    "[[:alpha:][:digit:]]" 0
299 C                "a"                    "[[:digit:][:alpha:]]" 0
301 # B.6 018(C)
302 C                "a"                    "[a-c]"                0
303 C                "b"                    "[a-c]"                0
304 C                "c"                    "[a-c]"                0
305 C                "a"                    "[b-c]"                NOMATCH
306 C                "d"                    "[b-c]"                NOMATCH
307 C                "B"                    "[a-c]"                NOMATCH
308 C                "b"                    "[A-C]"                NOMATCH
309 C                ""                     "[a-c]"                NOMATCH
310 C                "as"                   "[a-ca-z]"             NOMATCH
311 C                "a"                    "[[.a.]-c]"            0
312 C                "a"                    "[a-[.c.]]"            0
313 C                "a"                    "[[.a.]-[.c.]]"        0
314 C                "b"                    "[[.a.]-c]"            0
315 C                "b"                    "[a-[.c.]]"            0
316 C                "b"                    "[[.a.]-[.c.]]"        0
317 C                "c"                    "[[.a.]-c]"            0
318 C                "c"                    "[a-[.c.]]"            0
319 C                "c"                    "[[.a.]-[.c.]]"        0
320 C                "d"                    "[[.a.]-c]"            NOMATCH
321 C                "d"                    "[a-[.c.]]"            NOMATCH
322 C                "d"                    "[[.a.]-[.c.]]"        NOMATCH
324 # B.6 019(C)
325 C                "a"                    "[c-a]"                NOMATCH
326 C                "a"                    "[[.c.]-a]"            NOMATCH
327 C                "a"                    "[c-[.a.]]"            NOMATCH
328 C                "a"                    "[[.c.]-[.a.]]"        NOMATCH
329 C                "c"                    "[c-a]"                NOMATCH
330 C                "c"                    "[[.c.]-a]"            NOMATCH
331 C                "c"                    "[c-[.a.]]"            NOMATCH
332 C                "c"                    "[[.c.]-[.a.]]"        NOMATCH
334 # B.6 020(C)
335 C                "a"                    "[a-c0-9]"             0
336 C                "d"                    "[a-c0-9]"             NOMATCH
337 C                "B"                    "[a-c0-9]"             NOMATCH
339 # B.6 021(C)
340 C                "-"                    "[-a]"                 0
341 C                "a"                    "[-b]"                 NOMATCH
342 C                "-"                    "[!-a]"                NOMATCH
343 C                "a"                    "[!-b]"                0
344 C                "-"                    "[a-c-0-9]"            0
345 C                "b"                    "[a-c-0-9]"            0
346 C                "a:"                   "a[0-9-a]"             NOMATCH
347 C                "a:"                   "a[09-a]"              0
349 # B.6 024(C)
350 C                ""                     "*"                    0
351 C                "asd/sdf"              "*"                    0
353 # B.6 025(C)
354 C                "as"                   "[a-c][a-z]"           0
355 C                "as"                   "??"                   0
357 # B.6 026(C)
358 C                "asd/sdf"              "as*df"                0
359 C                "asd/sdf"              "as*"                  0
360 C                "asd/sdf"              "*df"                  0
361 C                "asd/sdf"              "as*dg"                NOMATCH
362 C                "asdf"                 "as*df"                0
363 C                "asdf"                 "as*df?"               NOMATCH
364 C                "asdf"                 "as*??"                0
365 C                "asdf"                 "a*???"                0
366 C                "asdf"                 "*????"                0
367 C                "asdf"                 "????*"                0
368 C                "asdf"                 "??*?"                 0
370 # B.6 027(C)
371 C                "/"                    "/"                    0
372 C                "/"                    "/*"                   0
373 C                "/"                    "*/"                   0
374 C                "/"                    "/?"                   NOMATCH
375 C                "/"                    "?/"                   NOMATCH
376 C                "/"                    "?"                    0
377 C                "."                    "?"                    0
378 C                "/."                   "??"                   0
379 C                "/"                    "[!a-c]"               0
380 C                "."                    "[!a-c]"               0
382 # B.6 029(C)
383 C                "/"                    "/"                    0       PATHNAME
384 C                "//"                   "//"                   0       PATHNAME
385 C                "/.a"                  "/*"                   0       PATHNAME
386 C                "/.a"                  "/?a"                  0       PATHNAME
387 C                "/.a"                  "/[!a-z]a"             0       PATHNAME
388 C                "/.a/.b"               "/*/?b"                0       PATHNAME
390 # B.6 030(C)
391 C                "/"                    "?"                    NOMATCH PATHNAME
392 C                "/"                    "*"                    NOMATCH PATHNAME
393 C                "a/b"                  "a?b"                  NOMATCH PATHNAME
394 C                "/.a/.b"               "/*b"                  NOMATCH PATHNAME
396 # B.6 031(C)
397 C                "/$"                   "\\/\\$"               0
398 C                "/["                   "\\/\\["               0
399 C                "/["                   "\\/["                 0
400 C                "/[]"                  "\\/\\[]"              0
402 # B.6 032(C)
403 C                "/$"                   "\\/\\$"               NOMATCH NOESCAPE
404 C                "/\\$"                 "\\/\\$"               NOMATCH NOESCAPE
405 C                "\\/\\$"               "\\/\\$"               0       NOESCAPE
407 # B.6 033(C)
408 C                ".asd"                 ".*"                   0       PERIOD
409 C                "/.asd"                "*"                    0       PERIOD
410 C                "/as/.df"              "*/?*f"                0       PERIOD
411 C                "..asd"                ".[!a-z]*"             0       PERIOD
413 # B.6 034(C)
414 C                ".asd"                 "*"                    NOMATCH PERIOD
415 C                ".asd"                 "?asd"                 NOMATCH PERIOD
416 C                ".asd"                 "[!a-z]*"              NOMATCH PERIOD
418 # B.6 035(C)
419 C                "/."                   "/."                   0       PATHNAME|PERIOD
420 C                "/.a./.b."             "/.*/.*"               0       PATHNAME|PERIOD
421 C                "/.a./.b."             "/.??/.??"             0       PATHNAME|PERIOD
423 # B.6 036(C)
424 C                "/."                   "*"                    NOMATCH PATHNAME|PERIOD
425 C                "/."                   "/*"                   NOMATCH PATHNAME|PERIOD
426 C                "/."                   "/?"                   NOMATCH PATHNAME|PERIOD
427 C                "/."                   "/[!a-z]"              NOMATCH PATHNAME|PERIOD
428 C                "/a./.b."              "/*/*"                 NOMATCH PATHNAME|PERIOD
429 C                "/a./.b."              "/??/???"              NOMATCH PATHNAME|PERIOD
431 # Some home-grown tests.
432 C               "foobar"                "foo*[abc]z"           NOMATCH
433 C               "foobaz"                "foo*[abc][xyz]"       0
434 C               "foobaz"                "foo?*[abc][xyz]"      0
435 C               "foobaz"                "foo?*[abc][x/yz]"     0
436 C               "foobaz"                "foo?*[abc]/[xyz]"     NOMATCH PATHNAME
437 C               "a"                     "a/"                   NOMATCH PATHNAME
438 C               "a/"                    "a"                    NOMATCH PATHNAME
439 C               "//a"                   "/a"                   NOMATCH PATHNAME
440 C               "/a"                    "//a"                  NOMATCH PATHNAME
441 C               "az"                    "[a-]z"                0
442 C               "bz"                    "[ab-]z"               0
443 C               "cz"                    "[ab-]z"               NOMATCH
444 C               "-z"                    "[ab-]z"               0
445 C               "az"                    "[-a]z"                0
446 C               "bz"                    "[-ab]z"               0
447 C               "cz"                    "[-ab]z"               NOMATCH
448 C               "-z"                    "[-ab]z"               0
449 C               "\\"                    "[\\\\-a]"             0
450 C               "_"                     "[\\\\-a]"             0
451 C               "a"                     "[\\\\-a]"             0
452 C               "-"                     "[\\\\-a]"             NOMATCH
453 C               "\\"                    "[\\]-a]"              NOMATCH
454 C               "_"                     "[\\]-a]"              0
455 C               "a"                     "[\\]-a]"              0
456 C               "]"                     "[\\]-a]"              0
457 C               "-"                     "[\\]-a]"              NOMATCH
458 C               "\\"                    "[!\\\\-a]"            NOMATCH
459 C               "_"                     "[!\\\\-a]"            NOMATCH
460 C               "a"                     "[!\\\\-a]"            NOMATCH
461 C               "-"                     "[!\\\\-a]"            0
462 C               "!"                     "[\\!-]"               0
463 C               "-"                     "[\\!-]"               0
464 C               "\\"                    "[\\!-]"               NOMATCH
465 C               "Z"                     "[Z-\\\\]"             0
466 C               "["                     "[Z-\\\\]"             0
467 C               "\\"                    "[Z-\\\\]"             0
468 C               "-"                     "[Z-\\\\]"             NOMATCH
469 C               "Z"                     "[Z-\\]]"              0
470 C               "["                     "[Z-\\]]"              0
471 C               "\\"                    "[Z-\\]]"              0
472 C               "]"                     "[Z-\\]]"              0
473 C               "-"                     "[Z-\\]]"              NOMATCH
475 # B.6 004(C)
476 C.UTF-8          "!#%+,-./01234567889"  "!#%+,-./01234567889"  0
477 C.UTF-8          ":;=@ABCDEFGHIJKLMNO"  ":;=@ABCDEFGHIJKLMNO"  0
478 C.UTF-8          "PQRSTUVWXYZ]abcdefg"  "PQRSTUVWXYZ]abcdefg"  0
479 C.UTF-8          "hijklmnopqrstuvwxyz"  "hijklmnopqrstuvwxyz"  0
480 C.UTF-8          "^_{}~"                "^_{}~"                0
482 # B.6 005(C)
483 C.UTF-8          "\"$&'()"              "\\\"\\$\\&\\'\\(\\)"  0
484 C.UTF-8          "*?[\\`|"              "\\*\\?\\[\\\\\\`\\|"  0
485 C.UTF-8          "<>"                   "\\<\\>"               0
487 # B.6 006(C)
488 C.UTF-8          "?*["                  "[?*[][?*[][?*[]"      0
489 C.UTF-8          "a/b"                  "?/b"                  0
491 # B.6 007(C)
492 C.UTF-8          "a/b"                  "a?b"                  0
493 C.UTF-8          "a/b"                  "a/?"                  0
494 C.UTF-8          "aa/b"                 "?/b"                  NOMATCH
495 C.UTF-8          "aa/b"                 "a?b"                  NOMATCH
496 C.UTF-8          "a/bb"                 "a/?"                  NOMATCH
498 # B.6 009(C)
499 C.UTF-8          "abc"                  "[abc]"                NOMATCH
500 C.UTF-8          "x"                    "[abc]"                NOMATCH
501 C.UTF-8          "a"                    "[abc]"                0
502 C.UTF-8          "["                    "[[abc]"               0
503 C.UTF-8          "a"                    "[][abc]"              0
504 C.UTF-8          "a]"                   "[]a]]"                0
506 # B.6 010(C)
507 C.UTF-8          "xyz"                  "[!abc]"               NOMATCH
508 C.UTF-8          "x"                    "[!abc]"               0
509 C.UTF-8          "a"                    "[!abc]"               NOMATCH
511 # B.6 011(C)
512 C.UTF-8          "]"                    "[][abc]"              0
513 C.UTF-8          "abc]"                 "[][abc]"              NOMATCH
514 C.UTF-8          "[]abc"                "[][]abc"              NOMATCH
515 C.UTF-8          "]"                    "[!]]"                 NOMATCH
516 C.UTF-8          "aa]"                  "[!]a]"                NOMATCH
517 C.UTF-8          "]"                    "[!a]"                 0
518 C.UTF-8          "]]"                   "[!a]]"                0
520 # B.6 012(C)
521 C.UTF-8          "a"                    "[[.a.]]"              0
522 C.UTF-8          "-"                    "[[.-.]]"              0
523 C.UTF-8          "-"                    "[[.-.][.].]]"         0
524 C.UTF-8          "-"                    "[[.].][.-.]]"         0
525 C.UTF-8          "-"                    "[[.-.][=u=]]"         0
526 C.UTF-8          "-"                    "[[.-.][:alpha:]]"     0
527 C.UTF-8          "a"                    "[![.a.]]"             NOMATCH
529 # B.6 013(C)
530 C.UTF-8          "a"                    "[[.b.]]"              NOMATCH
531 C.UTF-8          "a"                    "[[.b.][.c.]]"         NOMATCH
532 C.UTF-8          "a"                    "[[.b.][=b=]]"         NOMATCH
535 # B.6 015(C)
536 C.UTF-8          "a"                    "[[=a=]]"              0
537 C.UTF-8          "b"                    "[[=a=]b]"             0
538 C.UTF-8          "b"                    "[[=a=][=b=]]"         0
539 C.UTF-8          "a"                    "[[=a=][=b=]]"         0
540 C.UTF-8          "a"                    "[[=a=][.b.]]"         0
541 C.UTF-8          "a"                    "[[=a=][:digit:]]"     0
543 # B.6 016(C)
544 C.UTF-8          "="                    "[[=a=]b]"             NOMATCH
545 C.UTF-8          "]"                    "[[=a=]b]"             NOMATCH
546 C.UTF-8          "a"                    "[[=b=][=c=]]"         NOMATCH
547 C.UTF-8          "a"                    "[[=b=][.].]]"         NOMATCH
548 C.UTF-8          "a"                    "[[=b=][:digit:]]"     NOMATCH
550 # B.6 017(C)
551 C.UTF-8          "a"                    "[[:alnum:]]"          0
552 C.UTF-8          "a"                    "[![:alnum:]]"         NOMATCH
553 C.UTF-8          "-"                    "[[:alnum:]]"          NOMATCH
554 C.UTF-8          "a]a"                  "[[:alnum:]]a"         NOMATCH
555 C.UTF-8          "-"                    "[[:alnum:]-]"         0
556 C.UTF-8          "aa"                   "[[:alnum:]]a"         0
557 C.UTF-8          "-"                    "[![:alnum:]]"         0
558 C.UTF-8          "]"                    "[!][:alnum:]]"        NOMATCH
559 C.UTF-8          "["                    "[![:alnum:][]"        NOMATCH
560 C.UTF-8          "a"                    "[[:alnum:]]"          0
561 C.UTF-8          "b"                    "[[:alnum:]]"          0
562 C.UTF-8          "c"                    "[[:alnum:]]"          0
563 C.UTF-8          "d"                    "[[:alnum:]]"          0
564 C.UTF-8          "e"                    "[[:alnum:]]"          0
565 C.UTF-8          "f"                    "[[:alnum:]]"          0
566 C.UTF-8          "g"                    "[[:alnum:]]"          0
567 C.UTF-8          "h"                    "[[:alnum:]]"          0
568 C.UTF-8          "i"                    "[[:alnum:]]"          0
569 C.UTF-8          "j"                    "[[:alnum:]]"          0
570 C.UTF-8          "k"                    "[[:alnum:]]"          0
571 C.UTF-8          "l"                    "[[:alnum:]]"          0
572 C.UTF-8          "m"                    "[[:alnum:]]"          0
573 C.UTF-8          "n"                    "[[:alnum:]]"          0
574 C.UTF-8          "o"                    "[[:alnum:]]"          0
575 C.UTF-8          "p"                    "[[:alnum:]]"          0
576 C.UTF-8          "q"                    "[[:alnum:]]"          0
577 C.UTF-8          "r"                    "[[:alnum:]]"          0
578 C.UTF-8          "s"                    "[[:alnum:]]"          0
579 C.UTF-8          "t"                    "[[:alnum:]]"          0
580 C.UTF-8          "u"                    "[[:alnum:]]"          0
581 C.UTF-8          "v"                    "[[:alnum:]]"          0
582 C.UTF-8          "w"                    "[[:alnum:]]"          0
583 C.UTF-8          "x"                    "[[:alnum:]]"          0
584 C.UTF-8          "y"                    "[[:alnum:]]"          0
585 C.UTF-8          "z"                    "[[:alnum:]]"          0
586 C.UTF-8          "A"                    "[[:alnum:]]"          0
587 C.UTF-8          "B"                    "[[:alnum:]]"          0
588 C.UTF-8          "C"                    "[[:alnum:]]"          0
589 C.UTF-8          "D"                    "[[:alnum:]]"          0
590 C.UTF-8          "E"                    "[[:alnum:]]"          0
591 C.UTF-8          "F"                    "[[:alnum:]]"          0
592 C.UTF-8          "G"                    "[[:alnum:]]"          0
593 C.UTF-8          "H"                    "[[:alnum:]]"          0
594 C.UTF-8          "I"                    "[[:alnum:]]"          0
595 C.UTF-8          "J"                    "[[:alnum:]]"          0
596 C.UTF-8          "K"                    "[[:alnum:]]"          0
597 C.UTF-8          "L"                    "[[:alnum:]]"          0
598 C.UTF-8          "M"                    "[[:alnum:]]"          0
599 C.UTF-8          "N"                    "[[:alnum:]]"          0
600 C.UTF-8          "O"                    "[[:alnum:]]"          0
601 C.UTF-8          "P"                    "[[:alnum:]]"          0
602 C.UTF-8          "Q"                    "[[:alnum:]]"          0
603 C.UTF-8          "R"                    "[[:alnum:]]"          0
604 C.UTF-8          "S"                    "[[:alnum:]]"          0
605 C.UTF-8          "T"                    "[[:alnum:]]"          0
606 C.UTF-8          "U"                    "[[:alnum:]]"          0
607 C.UTF-8          "V"                    "[[:alnum:]]"          0
608 C.UTF-8          "W"                    "[[:alnum:]]"          0
609 C.UTF-8          "X"                    "[[:alnum:]]"          0
610 C.UTF-8          "Y"                    "[[:alnum:]]"          0
611 C.UTF-8          "Z"                    "[[:alnum:]]"          0
612 C.UTF-8          "0"                    "[[:alnum:]]"          0
613 C.UTF-8          "1"                    "[[:alnum:]]"          0
614 C.UTF-8          "2"                    "[[:alnum:]]"          0
615 C.UTF-8          "3"                    "[[:alnum:]]"          0
616 C.UTF-8          "4"                    "[[:alnum:]]"          0
617 C.UTF-8          "5"                    "[[:alnum:]]"          0
618 C.UTF-8          "6"                    "[[:alnum:]]"          0
619 C.UTF-8          "7"                    "[[:alnum:]]"          0
620 C.UTF-8          "8"                    "[[:alnum:]]"          0
621 C.UTF-8          "9"                    "[[:alnum:]]"          0
622 C.UTF-8          "!"                    "[[:alnum:]]"          NOMATCH
623 C.UTF-8          "#"                    "[[:alnum:]]"          NOMATCH
624 C.UTF-8          "%"                    "[[:alnum:]]"          NOMATCH
625 C.UTF-8          "+"                    "[[:alnum:]]"          NOMATCH
626 C.UTF-8          ","                    "[[:alnum:]]"          NOMATCH
627 C.UTF-8          "-"                    "[[:alnum:]]"          NOMATCH
628 C.UTF-8          "."                    "[[:alnum:]]"          NOMATCH
629 C.UTF-8          "/"                    "[[:alnum:]]"          NOMATCH
630 C.UTF-8          ":"                    "[[:alnum:]]"          NOMATCH
631 C.UTF-8          ";"                    "[[:alnum:]]"          NOMATCH
632 C.UTF-8          "="                    "[[:alnum:]]"          NOMATCH
633 C.UTF-8          "@"                    "[[:alnum:]]"          NOMATCH
634 C.UTF-8          "["                    "[[:alnum:]]"          NOMATCH
635 C.UTF-8          "\\"                   "[[:alnum:]]"          NOMATCH
636 C.UTF-8          "]"                    "[[:alnum:]]"          NOMATCH
637 C.UTF-8          "^"                    "[[:alnum:]]"          NOMATCH
638 C.UTF-8          "_"                    "[[:alnum:]]"          NOMATCH
639 C.UTF-8          "{"                    "[[:alnum:]]"          NOMATCH
640 C.UTF-8          "}"                    "[[:alnum:]]"          NOMATCH
641 C.UTF-8          "~"                    "[[:alnum:]]"          NOMATCH
642 C.UTF-8          "\""                   "[[:alnum:]]"          NOMATCH
643 C.UTF-8          "$"                    "[[:alnum:]]"          NOMATCH
644 C.UTF-8          "&"                    "[[:alnum:]]"          NOMATCH
645 C.UTF-8          "'"                    "[[:alnum:]]"          NOMATCH
646 C.UTF-8          "("                    "[[:alnum:]]"          NOMATCH
647 C.UTF-8          ")"                    "[[:alnum:]]"          NOMATCH
648 C.UTF-8          "*"                    "[[:alnum:]]"          NOMATCH
649 C.UTF-8          "?"                    "[[:alnum:]]"          NOMATCH
650 C.UTF-8          "`"                    "[[:alnum:]]"          NOMATCH
651 C.UTF-8          "|"                    "[[:alnum:]]"          NOMATCH
652 C.UTF-8          "<"                    "[[:alnum:]]"          NOMATCH
653 C.UTF-8          ">"                    "[[:alnum:]]"          NOMATCH
654 C.UTF-8          "\t"                   "[[:cntrl:]]"          0
655 C.UTF-8          "t"                    "[[:cntrl:]]"          NOMATCH
656 C.UTF-8          "t"                    "[[:lower:]]"          0
657 C.UTF-8          "\t"                   "[[:lower:]]"          NOMATCH
658 C.UTF-8          "T"                    "[[:lower:]]"          NOMATCH
659 C.UTF-8          "\t"                   "[[:space:]]"          0
660 C.UTF-8          "t"                    "[[:space:]]"          NOMATCH
661 C.UTF-8          "t"                    "[[:alpha:]]"          0
662 C.UTF-8          "\t"                   "[[:alpha:]]"          NOMATCH
663 C.UTF-8          "0"                    "[[:digit:]]"          0
664 C.UTF-8          "\t"                   "[[:digit:]]"          NOMATCH
665 C.UTF-8          "t"                    "[[:digit:]]"          NOMATCH
666 C.UTF-8          "\t"                   "[[:print:]]"          NOMATCH
667 C.UTF-8          "t"                    "[[:print:]]"          0
668 C.UTF-8          "T"                    "[[:upper:]]"          0
669 C.UTF-8          "\t"                   "[[:upper:]]"          NOMATCH
670 C.UTF-8          "t"                    "[[:upper:]]"          NOMATCH
671 C.UTF-8          "\t"                   "[[:blank:]]"          0
672 C.UTF-8          "t"                    "[[:blank:]]"          NOMATCH
673 C.UTF-8          "\t"                   "[[:graph:]]"          NOMATCH
674 C.UTF-8          "t"                    "[[:graph:]]"          0
675 C.UTF-8          "."                    "[[:punct:]]"          0
676 C.UTF-8          "t"                    "[[:punct:]]"          NOMATCH
677 C.UTF-8          "\t"                   "[[:punct:]]"          NOMATCH
678 C.UTF-8          "0"                    "[[:xdigit:]]"         0
679 C.UTF-8          "\t"                   "[[:xdigit:]]"         NOMATCH
680 C.UTF-8          "a"                    "[[:xdigit:]]"         0
681 C.UTF-8          "A"                    "[[:xdigit:]]"         0
682 C.UTF-8          "t"                    "[[:xdigit:]]"         NOMATCH
683 C.UTF-8          "a"                    "[[alpha]]"            NOMATCH
684 C.UTF-8          "a"                    "[[alpha:]]"           NOMATCH
685 C.UTF-8          "a]"                   "[[alpha]]"            0
686 C.UTF-8          "a]"                   "[[alpha:]]"           0
687 C.UTF-8          "a"                    "[[:alpha:][.b.]]"     0
688 C.UTF-8          "a"                    "[[:alpha:][=b=]]"     0
689 C.UTF-8          "a"                    "[[:alpha:][:digit:]]" 0
690 C.UTF-8          "a"                    "[[:digit:][:alpha:]]" 0
692 # B.6 018(C)
693 C.UTF-8          "a"                    "[a-c]"                0
694 C.UTF-8          "b"                    "[a-c]"                0
695 C.UTF-8          "c"                    "[a-c]"                0
696 C.UTF-8          "a"                    "[b-c]"                NOMATCH
697 C.UTF-8          "d"                    "[b-c]"                NOMATCH
698 C.UTF-8          "B"                    "[a-c]"                NOMATCH
699 C.UTF-8          "b"                    "[A-C]"                NOMATCH
700 C.UTF-8          ""                     "[a-c]"                NOMATCH
701 C.UTF-8          "as"                   "[a-ca-z]"             NOMATCH
702 C.UTF-8          "a"                    "[[.a.]-c]"            0
703 C.UTF-8          "a"                    "[a-[.c.]]"            0
704 C.UTF-8          "a"                    "[[.a.]-[.c.]]"        0
705 C.UTF-8          "b"                    "[[.a.]-c]"            0
706 C.UTF-8          "b"                    "[a-[.c.]]"            0
707 C.UTF-8          "b"                    "[[.a.]-[.c.]]"        0
708 C.UTF-8          "c"                    "[[.a.]-c]"            0
709 C.UTF-8          "c"                    "[a-[.c.]]"            0
710 C.UTF-8          "c"                    "[[.a.]-[.c.]]"        0
711 C.UTF-8          "d"                    "[[.a.]-c]"            NOMATCH
712 C.UTF-8          "d"                    "[a-[.c.]]"            NOMATCH
713 C.UTF-8          "d"                    "[[.a.]-[.c.]]"        NOMATCH
715 # B.6 019(C)
716 C.UTF-8          "a"                    "[c-a]"                NOMATCH
717 C.UTF-8          "a"                    "[[.c.]-a]"            NOMATCH
718 C.UTF-8          "a"                    "[c-[.a.]]"            NOMATCH
719 C.UTF-8          "a"                    "[[.c.]-[.a.]]"        NOMATCH
720 C.UTF-8          "c"                    "[c-a]"                NOMATCH
721 C.UTF-8          "c"                    "[[.c.]-a]"            NOMATCH
722 C.UTF-8          "c"                    "[c-[.a.]]"            NOMATCH
723 C.UTF-8          "c"                    "[[.c.]-[.a.]]"        NOMATCH
725 # B.6 020(C)
726 C.UTF-8          "a"                    "[a-c0-9]"             0
727 C.UTF-8          "d"                    "[a-c0-9]"             NOMATCH
728 C.UTF-8          "B"                    "[a-c0-9]"             NOMATCH
730 # B.6 021(C)
731 C.UTF-8          "-"                    "[-a]"                 0
732 C.UTF-8          "a"                    "[-b]"                 NOMATCH
733 C.UTF-8          "-"                    "[!-a]"                NOMATCH
734 C.UTF-8          "a"                    "[!-b]"                0
735 C.UTF-8          "-"                    "[a-c-0-9]"            0
736 C.UTF-8          "b"                    "[a-c-0-9]"            0
737 C.UTF-8          "a:"                   "a[0-9-a]"             NOMATCH
738 C.UTF-8          "a:"                   "a[09-a]"              0
740 # B.6 024(C)
741 C.UTF-8          ""                     "*"                    0
742 C.UTF-8          "asd/sdf"              "*"                    0
744 # B.6 025(C)
745 C.UTF-8          "as"                   "[a-c][a-z]"           0
746 C.UTF-8          "as"                   "??"                   0
748 # B.6 026(C)
749 C.UTF-8          "asd/sdf"              "as*df"                0
750 C.UTF-8          "asd/sdf"              "as*"                  0
751 C.UTF-8          "asd/sdf"              "*df"                  0
752 C.UTF-8          "asd/sdf"              "as*dg"                NOMATCH
753 C.UTF-8          "asdf"                 "as*df"                0
754 C.UTF-8          "asdf"                 "as*df?"               NOMATCH
755 C.UTF-8          "asdf"                 "as*??"                0
756 C.UTF-8          "asdf"                 "a*???"                0
757 C.UTF-8          "asdf"                 "*????"                0
758 C.UTF-8          "asdf"                 "????*"                0
759 C.UTF-8          "asdf"                 "??*?"                 0
761 # B.6 027(C)
762 C.UTF-8          "/"                    "/"                    0
763 C.UTF-8          "/"                    "/*"                   0
764 C.UTF-8          "/"                    "*/"                   0
765 C.UTF-8          "/"                    "/?"                   NOMATCH
766 C.UTF-8          "/"                    "?/"                   NOMATCH
767 C.UTF-8          "/"                    "?"                    0
768 C.UTF-8          "."                    "?"                    0
769 C.UTF-8          "/."                   "??"                   0
770 C.UTF-8          "/"                    "[!a-c]"               0
771 C.UTF-8          "."                    "[!a-c]"               0
773 # B.6 029(C)
774 C.UTF-8          "/"                    "/"                    0       PATHNAME
775 C.UTF-8          "//"                   "//"                   0       PATHNAME
776 C.UTF-8          "/.a"                  "/*"                   0       PATHNAME
777 C.UTF-8          "/.a"                  "/?a"                  0       PATHNAME
778 C.UTF-8          "/.a"                  "/[!a-z]a"             0       PATHNAME
779 C.UTF-8          "/.a/.b"               "/*/?b"                0       PATHNAME
781 # B.6 030(C)
782 C.UTF-8          "/"                    "?"                    NOMATCH PATHNAME
783 C.UTF-8          "/"                    "*"                    NOMATCH PATHNAME
784 C.UTF-8          "a/b"                  "a?b"                  NOMATCH PATHNAME
785 C.UTF-8          "/.a/.b"               "/*b"                  NOMATCH PATHNAME
787 # B.6 031(C)
788 C.UTF-8          "/$"                   "\\/\\$"               0
789 C.UTF-8          "/["                   "\\/\\["               0
790 C.UTF-8          "/["                   "\\/["                 0
791 C.UTF-8          "/[]"                  "\\/\\[]"              0
793 # B.6 032(C)
794 C.UTF-8          "/$"                   "\\/\\$"               NOMATCH NOESCAPE
795 C.UTF-8          "/\\$"                 "\\/\\$"               NOMATCH NOESCAPE
796 C.UTF-8          "\\/\\$"               "\\/\\$"               0       NOESCAPE
798 # B.6 033(C)
799 C.UTF-8          ".asd"                 ".*"                   0       PERIOD
800 C.UTF-8          "/.asd"                "*"                    0       PERIOD
801 C.UTF-8          "/as/.df"              "*/?*f"                0       PERIOD
802 C.UTF-8          "..asd"                ".[!a-z]*"             0       PERIOD
804 # B.6 034(C)
805 C.UTF-8          ".asd"                 "*"                    NOMATCH PERIOD
806 C.UTF-8          ".asd"                 "?asd"                 NOMATCH PERIOD
807 C.UTF-8          ".asd"                 "[!a-z]*"              NOMATCH PERIOD
809 # B.6 035(C)
810 C.UTF-8          "/."                   "/."                   0       PATHNAME|PERIOD
811 C.UTF-8          "/.a./.b."             "/.*/.*"               0       PATHNAME|PERIOD
812 C.UTF-8          "/.a./.b."             "/.??/.??"             0       PATHNAME|PERIOD
814 # B.6 036(C)
815 C.UTF-8          "/."                   "*"                    NOMATCH PATHNAME|PERIOD
816 C.UTF-8          "/."                   "/*"                   NOMATCH PATHNAME|PERIOD
817 C.UTF-8          "/."                   "/?"                   NOMATCH PATHNAME|PERIOD
818 C.UTF-8          "/."                   "/[!a-z]"              NOMATCH PATHNAME|PERIOD
819 C.UTF-8          "/a./.b."              "/*/*"                 NOMATCH PATHNAME|PERIOD
820 C.UTF-8          "/a./.b."              "/??/???"              NOMATCH PATHNAME|PERIOD
822 # Some home-grown tests.
823 C.UTF-8         "foobar"                "foo*[abc]z"           NOMATCH
824 C.UTF-8         "foobaz"                "foo*[abc][xyz]"       0
825 C.UTF-8         "foobaz"                "foo?*[abc][xyz]"      0
826 C.UTF-8         "foobaz"                "foo?*[abc][x/yz]"     0
827 C.UTF-8         "foobaz"                "foo?*[abc]/[xyz]"     NOMATCH PATHNAME
828 C.UTF-8         "a"                     "a/"                   NOMATCH PATHNAME
829 C.UTF-8         "a/"                    "a"                    NOMATCH PATHNAME
830 C.UTF-8         "//a"                   "/a"                   NOMATCH PATHNAME
831 C.UTF-8         "/a"                    "//a"                  NOMATCH PATHNAME
832 C.UTF-8         "az"                    "[a-]z"                0
833 C.UTF-8         "bz"                    "[ab-]z"               0
834 C.UTF-8         "cz"                    "[ab-]z"               NOMATCH
835 C.UTF-8         "-z"                    "[ab-]z"               0
836 C.UTF-8         "az"                    "[-a]z"                0
837 C.UTF-8         "bz"                    "[-ab]z"               0
838 C.UTF-8         "cz"                    "[-ab]z"               NOMATCH
839 C.UTF-8         "-z"                    "[-ab]z"               0
840 C.UTF-8         "\\"                    "[\\\\-a]"             0
841 C.UTF-8         "_"                     "[\\\\-a]"             0
842 C.UTF-8         "a"                     "[\\\\-a]"             0
843 C.UTF-8         "-"                     "[\\\\-a]"             NOMATCH
844 C.UTF-8         "\\"                    "[\\]-a]"              NOMATCH
845 C.UTF-8         "_"                     "[\\]-a]"              0
846 C.UTF-8         "a"                     "[\\]-a]"              0
847 C.UTF-8         "]"                     "[\\]-a]"              0
848 C.UTF-8         "-"                     "[\\]-a]"              NOMATCH
849 C.UTF-8         "\\"                    "[!\\\\-a]"            NOMATCH
850 C.UTF-8         "_"                     "[!\\\\-a]"            NOMATCH
851 C.UTF-8         "a"                     "[!\\\\-a]"            NOMATCH
852 C.UTF-8         "-"                     "[!\\\\-a]"            0
853 C.UTF-8         "!"                     "[\\!-]"               0
854 C.UTF-8         "-"                     "[\\!-]"               0
855 C.UTF-8         "\\"                    "[\\!-]"               NOMATCH
856 C.UTF-8         "Z"                     "[Z-\\\\]"             0
857 C.UTF-8         "["                     "[Z-\\\\]"             0
858 C.UTF-8         "\\"                    "[Z-\\\\]"             0
859 C.UTF-8         "-"                     "[Z-\\\\]"             NOMATCH
860 C.UTF-8         "Z"                     "[Z-\\]]"              0
861 C.UTF-8         "["                     "[Z-\\]]"              0
862 C.UTF-8         "\\"                    "[Z-\\]]"              0
863 C.UTF-8         "]"                     "[Z-\\]]"              0
864 C.UTF-8         "-"                     "[Z-\\]]"              NOMATCH
866 # Following are tests outside the scope of IEEE 2003.2 since they are using
867 # locales other than the C locale.  The main focus of the tests is on the
868 # handling of ranges and the recognition of character (vs bytes).
869 de_DE.ISO-8859-1 "a"                    "[a-z]"                0
870 de_DE.ISO-8859-1 "z"                    "[a-z]"                0
871 de_DE.ISO-8859-1 "\344"                 "[a-z]"                0
872 de_DE.ISO-8859-1 "\366"                 "[a-z]"                0
873 de_DE.ISO-8859-1 "\374"                 "[a-z]"                0
874 de_DE.ISO-8859-1 "A"                    "[a-z]"                NOMATCH
875 de_DE.ISO-8859-1 "Z"                    "[a-z]"                NOMATCH
876 de_DE.ISO-8859-1 "\304"                 "[a-z]"                NOMATCH
877 de_DE.ISO-8859-1 "\326"                 "[a-z]"                NOMATCH
878 de_DE.ISO-8859-1 "\334"                 "[a-z]"                NOMATCH
879 de_DE.ISO-8859-1 "a"                    "[A-Z]"                NOMATCH
880 de_DE.ISO-8859-1 "z"                    "[A-Z]"                NOMATCH
881 de_DE.ISO-8859-1 "\344"                 "[A-Z]"                NOMATCH
882 de_DE.ISO-8859-1 "\366"                 "[A-Z]"                NOMATCH
883 de_DE.ISO-8859-1 "\374"                 "[A-Z]"                NOMATCH
884 de_DE.ISO-8859-1 "A"                    "[A-Z]"                0
885 de_DE.ISO-8859-1 "Z"                    "[A-Z]"                0
886 de_DE.ISO-8859-1 "\304"                 "[A-Z]"                0
887 de_DE.ISO-8859-1 "\326"                 "[A-Z]"                0
888 de_DE.ISO-8859-1 "\334"                 "[A-Z]"                0
889 de_DE.ISO-8859-1 "a"                    "[[:lower:]]"          0
890 de_DE.ISO-8859-1 "z"                    "[[:lower:]]"          0
891 de_DE.ISO-8859-1 "\344"                 "[[:lower:]]"          0
892 de_DE.ISO-8859-1 "\366"                 "[[:lower:]]"          0
893 de_DE.ISO-8859-1 "\374"                 "[[:lower:]]"          0
894 de_DE.ISO-8859-1 "A"                    "[[:lower:]]"          NOMATCH
895 de_DE.ISO-8859-1 "Z"                    "[[:lower:]]"          NOMATCH
896 de_DE.ISO-8859-1 "\304"                 "[[:lower:]]"          NOMATCH
897 de_DE.ISO-8859-1 "\326"                 "[[:lower:]]"          NOMATCH
898 de_DE.ISO-8859-1 "\334"                 "[[:lower:]]"          NOMATCH
899 de_DE.ISO-8859-1 "a"                    "[[:upper:]]"          NOMATCH
900 de_DE.ISO-8859-1 "z"                    "[[:upper:]]"          NOMATCH
901 de_DE.ISO-8859-1 "\344"                 "[[:upper:]]"          NOMATCH
902 de_DE.ISO-8859-1 "\366"                 "[[:upper:]]"          NOMATCH
903 de_DE.ISO-8859-1 "\374"                 "[[:upper:]]"          NOMATCH
904 de_DE.ISO-8859-1 "A"                    "[[:upper:]]"          0
905 de_DE.ISO-8859-1 "Z"                    "[[:upper:]]"          0
906 de_DE.ISO-8859-1 "\304"                 "[[:upper:]]"          0
907 de_DE.ISO-8859-1 "\326"                 "[[:upper:]]"          0
908 de_DE.ISO-8859-1 "\334"                 "[[:upper:]]"          0
909 de_DE.ISO-8859-1 "a"                    "[[:alpha:]]"          0
910 de_DE.ISO-8859-1 "z"                    "[[:alpha:]]"          0
911 de_DE.ISO-8859-1 "\344"                 "[[:alpha:]]"          0
912 de_DE.ISO-8859-1 "\366"                 "[[:alpha:]]"          0
913 de_DE.ISO-8859-1 "\374"                 "[[:alpha:]]"          0
914 de_DE.ISO-8859-1 "A"                    "[[:alpha:]]"          0
915 de_DE.ISO-8859-1 "Z"                    "[[:alpha:]]"          0
916 de_DE.ISO-8859-1 "\304"                 "[[:alpha:]]"          0
917 de_DE.ISO-8859-1 "\326"                 "[[:alpha:]]"          0
918 de_DE.ISO-8859-1 "\334"                 "[[:alpha:]]"          0
920 de_DE.ISO-8859-1 "a"                    "[[=a=]b]"             0
921 de_DE.ISO-8859-1 "\342"                 "[[=a=]b]"             0
922 de_DE.ISO-8859-1 "\340"                 "[[=a=]b]"             0
923 de_DE.ISO-8859-1 "\341"                 "[[=a=]b]"             0
924 de_DE.ISO-8859-1 "\344"                 "[[=a=]b]"             0
925 de_DE.ISO-8859-1 "b"                    "[[=a=]b]"             0
926 de_DE.ISO-8859-1 "c"                    "[[=a=]b]"             NOMATCH
927 de_DE.ISO-8859-1 "a"                    "[[=\342=]b]"          0
928 de_DE.ISO-8859-1 "\342"                 "[[=\342=]b]"          0
929 de_DE.ISO-8859-1 "\340"                 "[[=\342=]b]"          0
930 de_DE.ISO-8859-1 "\341"                 "[[=\342=]b]"          0
931 de_DE.ISO-8859-1 "\344"                 "[[=\342=]b]"          0
932 de_DE.ISO-8859-1 "b"                    "[[=\342=]b]"          0
933 de_DE.ISO-8859-1 "c"                    "[[=\342=]b]"          NOMATCH
934 de_DE.ISO-8859-1 "a"                    "[[=\340=]b]"          0
935 de_DE.ISO-8859-1 "\342"                 "[[=\340=]b]"          0
936 de_DE.ISO-8859-1 "\340"                 "[[=\340=]b]"          0
937 de_DE.ISO-8859-1 "\341"                 "[[=\340=]b]"          0
938 de_DE.ISO-8859-1 "\344"                 "[[=\340=]b]"          0
939 de_DE.ISO-8859-1 "b"                    "[[=\340=]b]"          0
940 de_DE.ISO-8859-1 "c"                    "[[=\340=]b]"          NOMATCH
941 de_DE.ISO-8859-1 "a"                    "[[=\341=]b]"          0
942 de_DE.ISO-8859-1 "\342"                 "[[=\341=]b]"          0
943 de_DE.ISO-8859-1 "\340"                 "[[=\341=]b]"          0
944 de_DE.ISO-8859-1 "\341"                 "[[=\341=]b]"          0
945 de_DE.ISO-8859-1 "\344"                 "[[=\341=]b]"          0
946 de_DE.ISO-8859-1 "b"                    "[[=\341=]b]"          0
947 de_DE.ISO-8859-1 "c"                    "[[=\341=]b]"          NOMATCH
948 de_DE.ISO-8859-1 "a"                    "[[=\344=]b]"          0
949 de_DE.ISO-8859-1 "\342"                 "[[=\344=]b]"          0
950 de_DE.ISO-8859-1 "\340"                 "[[=\344=]b]"          0
951 de_DE.ISO-8859-1 "\341"                 "[[=\344=]b]"          0
952 de_DE.ISO-8859-1 "\344"                 "[[=\344=]b]"          0
953 de_DE.ISO-8859-1 "b"                    "[[=\344=]b]"          0
954 de_DE.ISO-8859-1 "c"                    "[[=\344=]b]"          NOMATCH
956 de_DE.ISO-8859-1 "aa"                   "[[.a.]]a"             0
957 de_DE.ISO-8859-1 "ba"                   "[[.a.]]a"             NOMATCH
960 # And with a multibyte character set.
961 en_US.UTF-8      "a"                    "[a-z]"                0
962 en_US.UTF-8      "z"                    "[a-z]"                0
963 en_US.UTF-8      "A"                    "[a-z]"                NOMATCH
964 en_US.UTF-8      "Z"                    "[a-z]"                NOMATCH
965 en_US.UTF-8      "a"                    "[A-Z]"                NOMATCH
966 en_US.UTF-8      "z"                    "[A-Z]"                NOMATCH
967 en_US.UTF-8      "A"                    "[A-Z]"                0
968 en_US.UTF-8      "Z"                    "[A-Z]"                0
969 en_US.UTF-8      "0"                    "[0-9]"                0
970 en_US.UTF-8      "9"                    "[0-9]"                0
971 de_DE.UTF-8      "a"                    "[a-z]"                0
972 de_DE.UTF-8      "z"                    "[a-z]"                0
973 de_DE.UTF-8      "ä"                    "[a-z]"                0
974 de_DE.UTF-8      "ö"                    "[a-z]"                0
975 de_DE.UTF-8      "ü"                    "[a-z]"                0
976 de_DE.UTF-8      "A"                    "[a-z]"                NOMATCH
977 de_DE.UTF-8      "Z"                    "[a-z]"                NOMATCH
978 de_DE.UTF-8      "Ä"                    "[a-z]"                NOMATCH
979 de_DE.UTF-8      "Ö"                    "[a-z]"                NOMATCH
980 de_DE.UTF-8      "Ãœ"                    "[a-z]"                NOMATCH
981 de_DE.UTF-8      "a"                    "[A-Z]"                NOMATCH
982 de_DE.UTF-8      "z"                    "[A-Z]"                NOMATCH
983 de_DE.UTF-8      "ä"                    "[A-Z]"                NOMATCH
984 de_DE.UTF-8      "ö"                    "[A-Z]"                NOMATCH
985 de_DE.UTF-8      "ü"                    "[A-Z]"                NOMATCH
986 de_DE.UTF-8      "A"                    "[A-Z]"                0
987 de_DE.UTF-8      "Z"                    "[A-Z]"                0
988 de_DE.UTF-8      "Ä"                    "[A-Z]"                0
989 de_DE.UTF-8      "Ö"                    "[A-Z]"                0
990 de_DE.UTF-8      "Ãœ"                    "[A-Z]"                0
991 de_DE.UTF-8      "a"                    "[[:lower:]]"          0
992 de_DE.UTF-8      "z"                    "[[:lower:]]"          0
993 de_DE.UTF-8      "ä"                    "[[:lower:]]"          0
994 de_DE.UTF-8      "ö"                    "[[:lower:]]"          0
995 de_DE.UTF-8      "ü"                    "[[:lower:]]"          0
996 de_DE.UTF-8      "A"                    "[[:lower:]]"          NOMATCH
997 de_DE.UTF-8      "Z"                    "[[:lower:]]"          NOMATCH
998 de_DE.UTF-8      "Ä"                    "[[:lower:]]"          NOMATCH
999 de_DE.UTF-8      "Ö"                    "[[:lower:]]"          NOMATCH
1000 de_DE.UTF-8      "Ãœ"                    "[[:lower:]]"          NOMATCH
1001 de_DE.UTF-8      "a"                    "[[:upper:]]"          NOMATCH
1002 de_DE.UTF-8      "z"                    "[[:upper:]]"          NOMATCH
1003 de_DE.UTF-8      "ä"                    "[[:upper:]]"          NOMATCH
1004 de_DE.UTF-8      "ö"                    "[[:upper:]]"          NOMATCH
1005 de_DE.UTF-8      "ü"                    "[[:upper:]]"          NOMATCH
1006 de_DE.UTF-8      "A"                    "[[:upper:]]"          0
1007 de_DE.UTF-8      "Z"                    "[[:upper:]]"          0
1008 de_DE.UTF-8      "Ä"                    "[[:upper:]]"          0
1009 de_DE.UTF-8      "Ö"                    "[[:upper:]]"          0
1010 de_DE.UTF-8      "Ãœ"                    "[[:upper:]]"          0
1011 de_DE.UTF-8      "a"                    "[[:alpha:]]"          0
1012 de_DE.UTF-8      "z"                    "[[:alpha:]]"          0
1013 de_DE.UTF-8      "ä"                    "[[:alpha:]]"          0
1014 de_DE.UTF-8      "ö"                    "[[:alpha:]]"          0
1015 de_DE.UTF-8      "ü"                    "[[:alpha:]]"          0
1016 de_DE.UTF-8      "A"                    "[[:alpha:]]"          0
1017 de_DE.UTF-8      "Z"                    "[[:alpha:]]"          0
1018 de_DE.UTF-8      "Ä"                    "[[:alpha:]]"          0
1019 de_DE.UTF-8      "Ö"                    "[[:alpha:]]"          0
1020 de_DE.UTF-8      "Ãœ"                    "[[:alpha:]]"          0
1022 de_DE.UTF-8      "a"                    "[[=a=]b]"             0
1023 de_DE.UTF-8      "â"                    "[[=a=]b]"             0
1024 de_DE.UTF-8      "à"                    "[[=a=]b]"             0
1025 de_DE.UTF-8      "á"                    "[[=a=]b]"             0
1026 de_DE.UTF-8      "ä"                    "[[=a=]b]"             0
1027 de_DE.UTF-8      "b"                    "[[=a=]b]"             0
1028 de_DE.UTF-8      "c"                    "[[=a=]b]"             NOMATCH
1029 de_DE.UTF-8      "a"                    "[[=â=]b]"             0
1030 de_DE.UTF-8      "â"                    "[[=â=]b]"             0
1031 de_DE.UTF-8      "à"                    "[[=â=]b]"             0
1032 de_DE.UTF-8      "á"                    "[[=â=]b]"             0
1033 de_DE.UTF-8      "ä"                    "[[=â=]b]"             0
1034 de_DE.UTF-8      "b"                    "[[=â=]b]"             0
1035 de_DE.UTF-8      "c"                    "[[=â=]b]"             NOMATCH
1036 de_DE.UTF-8      "a"                    "[[=à=]b]"             0
1037 de_DE.UTF-8      "â"                    "[[=à=]b]"             0
1038 de_DE.UTF-8      "à"                    "[[=à=]b]"             0
1039 de_DE.UTF-8      "á"                    "[[=à=]b]"             0
1040 de_DE.UTF-8      "ä"                    "[[=à=]b]"             0
1041 de_DE.UTF-8      "b"                    "[[=à=]b]"             0
1042 de_DE.UTF-8      "c"                    "[[=à=]b]"             NOMATCH
1043 de_DE.UTF-8      "a"                    "[[=á=]b]"             0
1044 de_DE.UTF-8      "â"                    "[[=á=]b]"             0
1045 de_DE.UTF-8      "à"                    "[[=á=]b]"             0
1046 de_DE.UTF-8      "á"                    "[[=á=]b]"             0
1047 de_DE.UTF-8      "ä"                    "[[=á=]b]"             0
1048 de_DE.UTF-8      "b"                    "[[=á=]b]"             0
1049 de_DE.UTF-8      "c"                    "[[=á=]b]"             NOMATCH
1050 de_DE.UTF-8      "a"                    "[[=ä=]b]"             0
1051 de_DE.UTF-8      "â"                    "[[=ä=]b]"             0
1052 de_DE.UTF-8      "à"                    "[[=ä=]b]"             0
1053 de_DE.UTF-8      "á"                    "[[=ä=]b]"             0
1054 de_DE.UTF-8      "ä"                    "[[=ä=]b]"             0
1055 de_DE.UTF-8      "b"                    "[[=ä=]b]"             0
1056 de_DE.UTF-8      "c"                    "[[=ä=]b]"             NOMATCH
1058 de_DE.UTF-8      "aa"                   "[[.a.]]a"             0
1059 de_DE.UTF-8      "ba"                   "[[.a.]]a"             NOMATCH
1062 # Test of GNU extensions.
1063 C                "x"                    "x"                    0       PATHNAME|LEADING_DIR
1064 C                "x/y"                  "x"                    0       PATHNAME|LEADING_DIR
1065 C                "x/y/z"                "x"                    0       PATHNAME|LEADING_DIR
1066 C                "x"                    "*"                    0       PATHNAME|LEADING_DIR
1067 C                "x/y"                  "*"                    0       PATHNAME|LEADING_DIR
1068 C                "x/y/z"                "*"                    0       PATHNAME|LEADING_DIR
1069 C                "x"                    "*x"                   0       PATHNAME|LEADING_DIR
1071 C                "x/y"                  "*x"                   0       PATHNAME|LEADING_DIR
1072 C                "x/y/z"                "*x"                   0       PATHNAME|LEADING_DIR
1073 C                "x"                    "x*"                   0       PATHNAME|LEADING_DIR
1074 C                "x/y"                  "x*"                   0       PATHNAME|LEADING_DIR
1075 C                "x/y/z"                "x*"                   0       PATHNAME|LEADING_DIR
1076 C                "x"                    "a"                    NOMATCH PATHNAME|LEADING_DIR
1077 C                "x/y"                  "a"                    NOMATCH PATHNAME|LEADING_DIR
1078 C                "x/y/z"                "a"                    NOMATCH PATHNAME|LEADING_DIR
1079 C                "x"                    "x/y"                  NOMATCH PATHNAME|LEADING_DIR
1080 C                "x/y"                  "x/y"                  0       PATHNAME|LEADING_DIR
1081 C                "x/y/z"                "x/y"                  0       PATHNAME|LEADING_DIR
1082 C                "x"                    "x?y"                  NOMATCH PATHNAME|LEADING_DIR
1083 C                "x/y"                  "x?y"                  NOMATCH PATHNAME|LEADING_DIR
1084 C                "x/y/z"                "x?y"                  NOMATCH PATHNAME|LEADING_DIR
1086 # Duplicate the "Test of GNU extensions." tests but for C.UTF-8.
1087 C.UTF-8          "x"                    "x"                    0       PATHNAME|LEADING_DIR
1088 C.UTF-8          "x/y"                  "x"                    0       PATHNAME|LEADING_DIR
1089 C.UTF-8          "x/y/z"                "x"                    0       PATHNAME|LEADING_DIR
1090 C.UTF-8          "x"                    "*"                    0       PATHNAME|LEADING_DIR
1091 C.UTF-8          "x/y"                  "*"                    0       PATHNAME|LEADING_DIR
1092 C.UTF-8          "x/y/z"                "*"                    0       PATHNAME|LEADING_DIR
1093 C.UTF-8          "x"                    "*x"                   0       PATHNAME|LEADING_DIR
1095 C.UTF-8          "x/y"                  "*x"                   0       PATHNAME|LEADING_DIR
1096 C.UTF-8          "x/y/z"                "*x"                   0       PATHNAME|LEADING_DIR
1097 C.UTF-8          "x"                    "x*"                   0       PATHNAME|LEADING_DIR
1098 C.UTF-8          "x/y"                  "x*"                   0       PATHNAME|LEADING_DIR
1099 C.UTF-8          "x/y/z"                "x*"                   0       PATHNAME|LEADING_DIR
1100 C.UTF-8          "x"                    "a"                    NOMATCH PATHNAME|LEADING_DIR
1101 C.UTF-8          "x/y"                  "a"                    NOMATCH PATHNAME|LEADING_DIR
1102 C.UTF-8          "x/y/z"                "a"                    NOMATCH PATHNAME|LEADING_DIR
1103 C.UTF-8          "x"                    "x/y"                  NOMATCH PATHNAME|LEADING_DIR
1104 C.UTF-8          "x/y"                  "x/y"                  0       PATHNAME|LEADING_DIR
1105 C.UTF-8          "x/y/z"                "x/y"                  0       PATHNAME|LEADING_DIR
1106 C.UTF-8          "x"                    "x?y"                  NOMATCH PATHNAME|LEADING_DIR
1107 C.UTF-8          "x/y"                  "x?y"                  NOMATCH PATHNAME|LEADING_DIR
1108 C.UTF-8          "x/y/z"                "x?y"                  NOMATCH PATHNAME|LEADING_DIR
1110 # Bug 14185
1111 en_US.UTF-8      "\366.csv"             "*.csv"                0
1113 # ksh style matching.
1114 C               "abcd"                  "?@(a|b)*@(c)d"        0       EXTMATCH
1115 C               "/dev/udp/129.22.8.102/45" "/dev/@(tcp|udp)/*/*" 0     PATHNAME|EXTMATCH
1116 C               "12"                    "[1-9]*([0-9])"        0       EXTMATCH
1117 C               "12abc"                 "[1-9]*([0-9])"        NOMATCH EXTMATCH
1118 C               "1"                     "[1-9]*([0-9])"        0       EXTMATCH
1119 C               "07"                    "+([0-7])"             0       EXTMATCH
1120 C               "0377"                  "+([0-7])"             0       EXTMATCH
1121 C               "09"                    "+([0-7])"             NOMATCH EXTMATCH
1122 C               "paragraph"             "para@(chute|graph)"   0       EXTMATCH
1123 C               "paramour"              "para@(chute|graph)"   NOMATCH EXTMATCH
1124 C               "para991"               "para?([345]|99)1"     0       EXTMATCH
1125 C               "para381"               "para?([345]|99)1"     NOMATCH EXTMATCH
1126 C               "paragraph"             "para*([0-9])"         NOMATCH EXTMATCH
1127 C               "para"                  "para*([0-9])"         0       EXTMATCH
1128 C               "para13829383746592"    "para*([0-9])"         0       EXTMATCH
1129 C               "paragraph"             "para+([0-9])"         NOMATCH EXTMATCH
1130 C               "para"                  "para+([0-9])"         NOMATCH EXTMATCH
1131 C               "para987346523"         "para+([0-9])"         0       EXTMATCH
1132 C               "paragraph"             "para!(*.[0-9])"       0       EXTMATCH
1133 C               "para.38"               "para!(*.[0-9])"       0       EXTMATCH
1134 C               "para.graph"            "para!(*.[0-9])"       0       EXTMATCH
1135 C               "para39"                "para!(*.[0-9])"       0       EXTMATCH
1136 C               ""                      "*(0|1|3|5|7|9)"       0       EXTMATCH
1137 C               "137577991"             "*(0|1|3|5|7|9)"       0       EXTMATCH
1138 C               "2468"                  "*(0|1|3|5|7|9)"       NOMATCH EXTMATCH
1139 C               "1358"                  "*(0|1|3|5|7|9)"       NOMATCH EXTMATCH
1140 C               "file.c"                "*.c?(c)"              0       EXTMATCH
1141 C               "file.C"                "*.c?(c)"              NOMATCH EXTMATCH
1142 C               "file.cc"               "*.c?(c)"              0       EXTMATCH
1143 C               "file.ccc"              "*.c?(c)"              NOMATCH EXTMATCH
1144 C               "parse.y"               "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
1145 C               "shell.c"               "!(*.c|*.h|Makefile.in|config*|README)" NOMATCH EXTMATCH
1146 C               "Makefile"              "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
1147 C               "VMS.FILE;1"            "*\;[1-9]*([0-9])"     0       EXTMATCH
1148 C               "VMS.FILE;0"            "*\;[1-9]*([0-9])"     NOMATCH EXTMATCH
1149 C               "VMS.FILE;"             "*\;[1-9]*([0-9])"     NOMATCH EXTMATCH
1150 C               "VMS.FILE;139"          "*\;[1-9]*([0-9])"     0       EXTMATCH
1151 C               "VMS.FILE;1N"           "*\;[1-9]*([0-9])"     NOMATCH EXTMATCH
1152 C               "abcfefg"               "ab**(e|f)"            0       EXTMATCH
1153 C               "abcfefg"               "ab**(e|f)g"           0       EXTMATCH
1154 C               "ab"                    "ab*+(e|f)"            NOMATCH EXTMATCH
1155 C               "abef"                  "ab***ef"              0       EXTMATCH
1156 C               "abef"                  "ab**"                 0       EXTMATCH
1157 C               "fofo"                  "*(f*(o))"             0       EXTMATCH
1158 C               "ffo"                   "*(f*(o))"             0       EXTMATCH
1159 C               "foooofo"               "*(f*(o))"             0       EXTMATCH
1160 C               "foooofof"              "*(f*(o))"             0       EXTMATCH
1161 C               "fooofoofofooo"         "*(f*(o))"             0       EXTMATCH
1162 C               "foooofof"              "*(f+(o))"             NOMATCH EXTMATCH
1163 C               "xfoooofof"             "*(f*(o))"             NOMATCH EXTMATCH
1164 C               "foooofofx"             "*(f*(o))"             NOMATCH EXTMATCH
1165 C               "ofxoofxo"              "*(*(of*(o)x)o)"       0       EXTMATCH
1166 C               "ofooofoofofooo"        "*(f*(o))"             NOMATCH EXTMATCH
1167 C               "foooxfooxfoxfooox"     "*(f*(o)x)"            0       EXTMATCH
1168 C               "foooxfooxofoxfooox"    "*(f*(o)x)"            NOMATCH EXTMATCH
1169 C               "foooxfooxfxfooox"      "*(f*(o)x)"            0       EXTMATCH
1170 C               "ofxoofxo"              "*(*(of*(o)x)o)"       0       EXTMATCH
1171 C               "ofoooxoofxo"           "*(*(of*(o)x)o)"       0       EXTMATCH
1172 C               "ofoooxoofxoofoooxoofxo" "*(*(of*(o)x)o)"      0       EXTMATCH
1173 C               "ofoooxoofxoofoooxoofxoo" "*(*(of*(o)x)o)"     0       EXTMATCH
1174 C               "ofoooxoofxoofoooxoofxofo" "*(*(of*(o)x)o)"    NOMATCH EXTMATCH
1175 C               "ofoooxoofxoofoooxoofxooofxofxo" "*(*(of*(o)x)o)" 0    EXTMATCH
1176 C               "aac"                   "*(@(a))a@(c)"         0       EXTMATCH
1177 C               "ac"                    "*(@(a))a@(c)"         0       EXTMATCH
1178 C               "c"                     "*(@(a))a@(c)"         NOMATCH EXTMATCH
1179 C               "aaac"                  "*(@(a))a@(c)"         0       EXTMATCH
1180 C               "baaac"                 "*(@(a))a@(c)"         NOMATCH EXTMATCH
1181 C               "abcd"                  "?@(a|b)*@(c)d"        0       EXTMATCH
1182 C               "abcd"                  "@(ab|a*@(b))*(c)d"    0       EXTMATCH
1183 C               "acd"                   "@(ab|a*(b))*(c)d"     0       EXTMATCH
1184 C               "abbcd"                 "@(ab|a*(b))*(c)d"     0       EXTMATCH
1185 C               "effgz"                 "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1186 C               "efgz"                  "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1187 C               "egz"                   "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1188 C               "egzefffgzbcdij"        "*(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1189 C               "egz"                   "@(b+(c)d|e+(f)g?|?(h)i@(j|k))" NOMATCH EXTMATCH
1190 C               "ofoofo"                "*(of+(o))"            0       EXTMATCH
1191 C               "oxfoxoxfox"            "*(oxf+(ox))"          0       EXTMATCH
1192 C               "oxfoxfox"              "*(oxf+(ox))"          NOMATCH EXTMATCH
1193 C               "ofoofo"                "*(of+(o)|f)"          0       EXTMATCH
1194 C               "foofoofo"              "@(foo|f|fo)*(f|of+(o))" 0     EXTMATCH
1195 C               "oofooofo"              "*(of|oof+(o))"        0       EXTMATCH
1196 C               "fffooofoooooffoofffooofff" "*(*(f)*(o))"      0       EXTMATCH
1197 C               "fofoofoofofoo"         "*(fo|foo)"            0       EXTMATCH
1198 C               "foo"                   "!(x)"                 0       EXTMATCH
1199 C               "foo"                   "!(x)*"                0       EXTMATCH
1200 C               "foo"                   "!(foo)"               NOMATCH EXTMATCH
1201 C               "foo"                   "!(foo)*"              0       EXTMATCH
1202 C               "foobar"                "!(foo)"               0       EXTMATCH
1203 C               "foobar"                "!(foo)*"              0       EXTMATCH
1204 C               "moo.cow"               "!(*.*).!(*.*)"        0       EXTMATCH
1205 C               "mad.moo.cow"           "!(*.*).!(*.*)"        NOMATCH EXTMATCH
1206 C               "mucca.pazza"           "mu!(*(c))?.pa!(*(z))?" NOMATCH EXTMATCH
1207 C               "fff"                   "!(f)"                 0       EXTMATCH
1208 C               "fff"                   "*(!(f))"              0       EXTMATCH
1209 C               "fff"                   "+(!(f))"              0       EXTMATCH
1210 C               "ooo"                   "!(f)"                 0       EXTMATCH
1211 C               "ooo"                   "*(!(f))"              0       EXTMATCH
1212 C               "ooo"                   "+(!(f))"              0       EXTMATCH
1213 C               "foo"                   "!(f)"                 0       EXTMATCH
1214 C               "foo"                   "*(!(f))"              0       EXTMATCH
1215 C               "foo"                   "+(!(f))"              0       EXTMATCH
1216 C               "f"                     "!(f)"                 NOMATCH EXTMATCH
1217 C               "f"                     "*(!(f))"              NOMATCH EXTMATCH
1218 C               "f"                     "+(!(f))"              NOMATCH EXTMATCH
1219 C               "foot"                  "@(!(z*)|*x)"          0       EXTMATCH
1220 C               "zoot"                  "@(!(z*)|*x)"          NOMATCH EXTMATCH
1221 C               "foox"                  "@(!(z*)|*x)"          0       EXTMATCH
1222 C               "zoox"                  "@(!(z*)|*x)"          0       EXTMATCH
1223 C               "foo"                   "*(!(foo))"            0       EXTMATCH
1224 C               "foob"                  "!(foo)b*"             NOMATCH EXTMATCH
1225 C               "foobb"                 "!(foo)b*"             0       EXTMATCH
1226 C               "["                     "*([a[])"              0       EXTMATCH
1227 C               "]"                     "*([]a[])"             0       EXTMATCH
1228 C               "a"                     "*([]a[])"             0       EXTMATCH
1229 C               "b"                     "*([!]a[])"            0       EXTMATCH
1230 C               "["                     "*([!]a[]|[[])"        0       EXTMATCH
1231 C               "]"                     "*([!]a[]|[]])"        0       EXTMATCH
1232 C               "["                     "!([!]a[])"            0       EXTMATCH
1233 C               "]"                     "!([!]a[])"            0       EXTMATCH
1234 C               ")"                     "*([)])"               0       EXTMATCH
1235 C               "*"                     "*([*(])"              0       EXTMATCH
1236 C               "abcd"                  "*!(|a)cd"             0       EXTMATCH
1237 C               "ab/.a"                 "+([abc])/*"           NOMATCH EXTMATCH|PATHNAME|PERIOD
1238 C               ""                      ""                     0
1239 C               ""                      ""                     0       EXTMATCH
1240 C               ""                      "*([abc])"             0       EXTMATCH
1241 C               ""                      "?([abc])"             0       EXTMATCH
1243 # Duplicate the "ksh style matching." for C.UTF-8.
1244 C.UTF-8         "abcd"                  "?@(a|b)*@(c)d"        0       EXTMATCH
1245 C.UTF-8         "/dev/udp/129.22.8.102/45" "/dev/@(tcp|udp)/*/*" 0     PATHNAME|EXTMATCH
1246 C.UTF-8         "12"                    "[1-9]*([0-9])"        0       EXTMATCH
1247 C.UTF-8         "12abc"                 "[1-9]*([0-9])"        NOMATCH EXTMATCH
1248 C.UTF-8         "1"                     "[1-9]*([0-9])"        0       EXTMATCH
1249 C.UTF-8         "07"                    "+([0-7])"             0       EXTMATCH
1250 C.UTF-8         "0377"                  "+([0-7])"             0       EXTMATCH
1251 C.UTF-8         "09"                    "+([0-7])"             NOMATCH EXTMATCH
1252 C.UTF-8         "paragraph"             "para@(chute|graph)"   0       EXTMATCH
1253 C.UTF-8         "paramour"              "para@(chute|graph)"   NOMATCH EXTMATCH
1254 C.UTF-8         "para991"               "para?([345]|99)1"     0       EXTMATCH
1255 C.UTF-8         "para381"               "para?([345]|99)1"     NOMATCH EXTMATCH
1256 C.UTF-8         "paragraph"             "para*([0-9])"         NOMATCH EXTMATCH
1257 C.UTF-8         "para"                  "para*([0-9])"         0       EXTMATCH
1258 C.UTF-8         "para13829383746592"    "para*([0-9])"         0       EXTMATCH
1259 C.UTF-8         "paragraph"             "para+([0-9])"         NOMATCH EXTMATCH
1260 C.UTF-8         "para"                  "para+([0-9])"         NOMATCH EXTMATCH
1261 C.UTF-8         "para987346523"         "para+([0-9])"         0       EXTMATCH
1262 C.UTF-8         "paragraph"             "para!(*.[0-9])"       0       EXTMATCH
1263 C.UTF-8         "para.38"               "para!(*.[0-9])"       0       EXTMATCH
1264 C.UTF-8         "para.graph"            "para!(*.[0-9])"       0       EXTMATCH
1265 C.UTF-8         "para39"                "para!(*.[0-9])"       0       EXTMATCH
1266 C.UTF-8         ""                      "*(0|1|3|5|7|9)"       0       EXTMATCH
1267 C.UTF-8         "137577991"             "*(0|1|3|5|7|9)"       0       EXTMATCH
1268 C.UTF-8         "2468"                  "*(0|1|3|5|7|9)"       NOMATCH EXTMATCH
1269 C.UTF-8         "1358"                  "*(0|1|3|5|7|9)"       NOMATCH EXTMATCH
1270 C.UTF-8         "file.c"                "*.c?(c)"              0       EXTMATCH
1271 C.UTF-8         "file.C"                "*.c?(c)"              NOMATCH EXTMATCH
1272 C.UTF-8         "file.cc"               "*.c?(c)"              0       EXTMATCH
1273 C.UTF-8         "file.ccc"              "*.c?(c)"              NOMATCH EXTMATCH
1274 C.UTF-8         "parse.y"               "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
1275 C.UTF-8         "shell.c"               "!(*.c|*.h|Makefile.in|config*|README)" NOMATCH EXTMATCH
1276 C.UTF-8         "Makefile"              "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH
1277 C.UTF-8         "VMS.FILE;1"            "*\;[1-9]*([0-9])"     0       EXTMATCH
1278 C.UTF-8         "VMS.FILE;0"            "*\;[1-9]*([0-9])"     NOMATCH EXTMATCH
1279 C.UTF-8         "VMS.FILE;"             "*\;[1-9]*([0-9])"     NOMATCH EXTMATCH
1280 C.UTF-8         "VMS.FILE;139"          "*\;[1-9]*([0-9])"     0       EXTMATCH
1281 C.UTF-8         "VMS.FILE;1N"           "*\;[1-9]*([0-9])"     NOMATCH EXTMATCH
1282 C.UTF-8         "abcfefg"               "ab**(e|f)"            0       EXTMATCH
1283 C.UTF-8         "abcfefg"               "ab**(e|f)g"           0       EXTMATCH
1284 C.UTF-8         "ab"                    "ab*+(e|f)"            NOMATCH EXTMATCH
1285 C.UTF-8         "abef"                  "ab***ef"              0       EXTMATCH
1286 C.UTF-8         "abef"                  "ab**"                 0       EXTMATCH
1287 C.UTF-8         "fofo"                  "*(f*(o))"             0       EXTMATCH
1288 C.UTF-8         "ffo"                   "*(f*(o))"             0       EXTMATCH
1289 C.UTF-8         "foooofo"               "*(f*(o))"             0       EXTMATCH
1290 C.UTF-8         "foooofof"              "*(f*(o))"             0       EXTMATCH
1291 C.UTF-8         "fooofoofofooo"         "*(f*(o))"             0       EXTMATCH
1292 C.UTF-8         "foooofof"              "*(f+(o))"             NOMATCH EXTMATCH
1293 C.UTF-8         "xfoooofof"             "*(f*(o))"             NOMATCH EXTMATCH
1294 C.UTF-8         "foooofofx"             "*(f*(o))"             NOMATCH EXTMATCH
1295 C.UTF-8         "ofxoofxo"              "*(*(of*(o)x)o)"       0       EXTMATCH
1296 C.UTF-8         "ofooofoofofooo"        "*(f*(o))"             NOMATCH EXTMATCH
1297 C.UTF-8         "foooxfooxfoxfooox"     "*(f*(o)x)"            0       EXTMATCH
1298 C.UTF-8         "foooxfooxofoxfooox"    "*(f*(o)x)"            NOMATCH EXTMATCH
1299 C.UTF-8         "foooxfooxfxfooox"      "*(f*(o)x)"            0       EXTMATCH
1300 C.UTF-8         "ofxoofxo"              "*(*(of*(o)x)o)"       0       EXTMATCH
1301 C.UTF-8         "ofoooxoofxo"           "*(*(of*(o)x)o)"       0       EXTMATCH
1302 C.UTF-8         "ofoooxoofxoofoooxoofxo" "*(*(of*(o)x)o)"      0       EXTMATCH
1303 C.UTF-8         "ofoooxoofxoofoooxoofxoo" "*(*(of*(o)x)o)"     0       EXTMATCH
1304 C.UTF-8         "ofoooxoofxoofoooxoofxofo" "*(*(of*(o)x)o)"    NOMATCH EXTMATCH
1305 C.UTF-8         "ofoooxoofxoofoooxoofxooofxofxo" "*(*(of*(o)x)o)" 0    EXTMATCH
1306 C.UTF-8         "aac"                   "*(@(a))a@(c)"         0       EXTMATCH
1307 C.UTF-8         "ac"                    "*(@(a))a@(c)"         0       EXTMATCH
1308 C.UTF-8         "c"                     "*(@(a))a@(c)"         NOMATCH EXTMATCH
1309 C.UTF-8         "aaac"                  "*(@(a))a@(c)"         0       EXTMATCH
1310 C.UTF-8         "baaac"                 "*(@(a))a@(c)"         NOMATCH EXTMATCH
1311 C.UTF-8         "abcd"                  "?@(a|b)*@(c)d"        0       EXTMATCH
1312 C.UTF-8         "abcd"                  "@(ab|a*@(b))*(c)d"    0       EXTMATCH
1313 C.UTF-8         "acd"                   "@(ab|a*(b))*(c)d"     0       EXTMATCH
1314 C.UTF-8         "abbcd"                 "@(ab|a*(b))*(c)d"     0       EXTMATCH
1315 C.UTF-8         "effgz"                 "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1316 C.UTF-8         "efgz"                  "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1317 C.UTF-8         "egz"                   "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1318 C.UTF-8         "egzefffgzbcdij"        "*(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH
1319 C.UTF-8         "egz"                   "@(b+(c)d|e+(f)g?|?(h)i@(j|k))" NOMATCH EXTMATCH
1320 C.UTF-8         "ofoofo"                "*(of+(o))"            0       EXTMATCH
1321 C.UTF-8         "oxfoxoxfox"            "*(oxf+(ox))"          0       EXTMATCH
1322 C.UTF-8         "oxfoxfox"              "*(oxf+(ox))"          NOMATCH EXTMATCH
1323 C.UTF-8         "ofoofo"                "*(of+(o)|f)"          0       EXTMATCH
1324 C.UTF-8         "foofoofo"              "@(foo|f|fo)*(f|of+(o))" 0     EXTMATCH
1325 C.UTF-8         "oofooofo"              "*(of|oof+(o))"        0       EXTMATCH
1326 C.UTF-8         "fffooofoooooffoofffooofff" "*(*(f)*(o))"      0       EXTMATCH
1327 C.UTF-8         "fofoofoofofoo"         "*(fo|foo)"            0       EXTMATCH
1328 C.UTF-8         "foo"                   "!(x)"                 0       EXTMATCH
1329 C.UTF-8         "foo"                   "!(x)*"                0       EXTMATCH
1330 C.UTF-8         "foo"                   "!(foo)"               NOMATCH EXTMATCH
1331 C.UTF-8         "foo"                   "!(foo)*"              0       EXTMATCH
1332 C.UTF-8         "foobar"                "!(foo)"               0       EXTMATCH
1333 C.UTF-8         "foobar"                "!(foo)*"              0       EXTMATCH
1334 C.UTF-8         "moo.cow"               "!(*.*).!(*.*)"        0       EXTMATCH
1335 C.UTF-8         "mad.moo.cow"           "!(*.*).!(*.*)"        NOMATCH EXTMATCH
1336 C.UTF-8         "mucca.pazza"           "mu!(*(c))?.pa!(*(z))?" NOMATCH EXTMATCH
1337 C.UTF-8         "fff"                   "!(f)"                 0       EXTMATCH
1338 C.UTF-8         "fff"                   "*(!(f))"              0       EXTMATCH
1339 C.UTF-8         "fff"                   "+(!(f))"              0       EXTMATCH
1340 C.UTF-8         "ooo"                   "!(f)"                 0       EXTMATCH
1341 C.UTF-8         "ooo"                   "*(!(f))"              0       EXTMATCH
1342 C.UTF-8         "ooo"                   "+(!(f))"              0       EXTMATCH
1343 C.UTF-8         "foo"                   "!(f)"                 0       EXTMATCH
1344 C.UTF-8         "foo"                   "*(!(f))"              0       EXTMATCH
1345 C.UTF-8         "foo"                   "+(!(f))"              0       EXTMATCH
1346 C.UTF-8         "f"                     "!(f)"                 NOMATCH EXTMATCH
1347 C.UTF-8         "f"                     "*(!(f))"              NOMATCH EXTMATCH
1348 C.UTF-8         "f"                     "+(!(f))"              NOMATCH EXTMATCH
1349 C.UTF-8         "foot"                  "@(!(z*)|*x)"          0       EXTMATCH
1350 C.UTF-8         "zoot"                  "@(!(z*)|*x)"          NOMATCH EXTMATCH
1351 C.UTF-8         "foox"                  "@(!(z*)|*x)"          0       EXTMATCH
1352 C.UTF-8         "zoox"                  "@(!(z*)|*x)"          0       EXTMATCH
1353 C.UTF-8         "foo"                   "*(!(foo))"            0       EXTMATCH
1354 C.UTF-8         "foob"                  "!(foo)b*"             NOMATCH EXTMATCH
1355 C.UTF-8         "foobb"                 "!(foo)b*"             0       EXTMATCH
1356 C.UTF-8         "["                     "*([a[])"              0       EXTMATCH
1357 C.UTF-8         "]"                     "*([]a[])"             0       EXTMATCH
1358 C.UTF-8         "a"                     "*([]a[])"             0       EXTMATCH
1359 C.UTF-8         "b"                     "*([!]a[])"            0       EXTMATCH
1360 C.UTF-8         "["                     "*([!]a[]|[[])"        0       EXTMATCH
1361 C.UTF-8         "]"                     "*([!]a[]|[]])"        0       EXTMATCH
1362 C.UTF-8         "["                     "!([!]a[])"            0       EXTMATCH
1363 C.UTF-8         "]"                     "!([!]a[])"            0       EXTMATCH
1364 C.UTF-8         ")"                     "*([)])"               0       EXTMATCH
1365 C.UTF-8         "*"                     "*([*(])"              0       EXTMATCH
1366 C.UTF-8         "abcd"                  "*!(|a)cd"             0       EXTMATCH
1367 C.UTF-8         "ab/.a"                 "+([abc])/*"           NOMATCH EXTMATCH|PATHNAME|PERIOD
1368 C.UTF-8         ""                      ""                     0
1369 C.UTF-8         ""                      ""                     0       EXTMATCH
1370 C.UTF-8         ""                      "*([abc])"             0       EXTMATCH
1371 C.UTF-8         ""                      "?([abc])"             0       EXTMATCH