1# Tests for fnmatch. 2# Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc. 3# This file is part of the GNU C Library. 4# Contributes by Ulrich Drepper <drepper@redhat.com>. 5# 6 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. 11 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. 16 17# You should have received a copy of the GNU Lesser General Public 18# License along with the GNU C Library; see the file COPYING.LIB. If 19# not, see <http://www.gnu.org/licenses/>. 20 21 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. 26 27# B.6 004(C) 28C "!#%+,-./01234567889" "!#%+,-./01234567889" 0 29C ":;=@ABCDEFGHIJKLMNO" ":;=@ABCDEFGHIJKLMNO" 0 30C "PQRSTUVWXYZ]abcdefg" "PQRSTUVWXYZ]abcdefg" 0 31C "hijklmnopqrstuvwxyz" "hijklmnopqrstuvwxyz" 0 32C "^_{}~" "^_{}~" 0 33 34# B.6 005(C) 35C "\"$&'()" "\\\"\\$\\&\\'\\(\\)" 0 36C "*?[\\`|" "\\*\\?\\[\\\\\\`\\|" 0 37C "<>" "\\<\\>" 0 38 39# B.6 006(C) 40C "?*[" "[?*[][?*[][?*[]" 0 41C "a/b" "?/b" 0 42 43# B.6 007(C) 44C "a/b" "a?b" 0 45C "a/b" "a/?" 0 46C "aa/b" "?/b" NOMATCH 47C "aa/b" "a?b" NOMATCH 48C "a/bb" "a/?" NOMATCH 49 50# B.6 009(C) 51C "abc" "[abc]" NOMATCH 52C "x" "[abc]" NOMATCH 53C "a" "[abc]" 0 54C "[" "[[abc]" 0 55C "a" "[][abc]" 0 56C "a]" "[]a]]" 0 57 58# B.6 010(C) 59C "xyz" "[!abc]" NOMATCH 60C "x" "[!abc]" 0 61C "a" "[!abc]" NOMATCH 62 63# B.6 011(C) 64C "]" "[][abc]" 0 65C "abc]" "[][abc]" NOMATCH 66C "[]abc" "[][]abc" NOMATCH 67C "]" "[!]]" NOMATCH 68C "aa]" "[!]a]" NOMATCH 69C "]" "[!a]" 0 70C "]]" "[!a]]" 0 71 72# B.6 012(C) 73C "a" "[[.a.]]" 0 74C "-" "[[.-.]]" 0 75C "-" "[[.-.][.].]]" 0 76C "-" "[[.].][.-.]]" 0 77C "-" "[[.-.][=u=]]" 0 78C "-" "[[.-.][:alpha:]]" 0 79C "a" "[![.a.]]" NOMATCH 80 81# B.6 013(C) 82C "a" "[[.b.]]" NOMATCH 83C "a" "[[.b.][.c.]]" NOMATCH 84C "a" "[[.b.][=b=]]" NOMATCH 85 86 87# B.6 015(C) 88C "a" "[[=a=]]" 0 89C "b" "[[=a=]b]" 0 90C "b" "[[=a=][=b=]]" 0 91C "a" "[[=a=][=b=]]" 0 92C "a" "[[=a=][.b.]]" 0 93C "a" "[[=a=][:digit:]]" 0 94 95# B.6 016(C) 96C "=" "[[=a=]b]" NOMATCH 97C "]" "[[=a=]b]" NOMATCH 98C "a" "[[=b=][=c=]]" NOMATCH 99C "a" "[[=b=][.].]]" NOMATCH 100C "a" "[[=b=][:digit:]]" NOMATCH 101 102# B.6 017(C) 103C "a" "[[:alnum:]]" 0 104C "a" "[![:alnum:]]" NOMATCH 105C "-" "[[:alnum:]]" NOMATCH 106C "a]a" "[[:alnum:]]a" NOMATCH 107C "-" "[[:alnum:]-]" 0 108C "aa" "[[:alnum:]]a" 0 109C "-" "[![:alnum:]]" 0 110C "]" "[!][:alnum:]]" NOMATCH 111C "[" "[![:alnum:][]" NOMATCH 112C "a" "[[:alnum:]]" 0 113C "b" "[[:alnum:]]" 0 114C "c" "[[:alnum:]]" 0 115C "d" "[[:alnum:]]" 0 116C "e" "[[:alnum:]]" 0 117C "f" "[[:alnum:]]" 0 118C "g" "[[:alnum:]]" 0 119C "h" "[[:alnum:]]" 0 120C "i" "[[:alnum:]]" 0 121C "j" "[[:alnum:]]" 0 122C "k" "[[:alnum:]]" 0 123C "l" "[[:alnum:]]" 0 124C "m" "[[:alnum:]]" 0 125C "n" "[[:alnum:]]" 0 126C "o" "[[:alnum:]]" 0 127C "p" "[[:alnum:]]" 0 128C "q" "[[:alnum:]]" 0 129C "r" "[[:alnum:]]" 0 130C "s" "[[:alnum:]]" 0 131C "t" "[[:alnum:]]" 0 132C "u" "[[:alnum:]]" 0 133C "v" "[[:alnum:]]" 0 134C "w" "[[:alnum:]]" 0 135C "x" "[[:alnum:]]" 0 136C "y" "[[:alnum:]]" 0 137C "z" "[[:alnum:]]" 0 138C "A" "[[:alnum:]]" 0 139C "B" "[[:alnum:]]" 0 140C "C" "[[:alnum:]]" 0 141C "D" "[[:alnum:]]" 0 142C "E" "[[:alnum:]]" 0 143C "F" "[[:alnum:]]" 0 144C "G" "[[:alnum:]]" 0 145C "H" "[[:alnum:]]" 0 146C "I" "[[:alnum:]]" 0 147C "J" "[[:alnum:]]" 0 148C "K" "[[:alnum:]]" 0 149C "L" "[[:alnum:]]" 0 150C "M" "[[:alnum:]]" 0 151C "N" "[[:alnum:]]" 0 152C "O" "[[:alnum:]]" 0 153C "P" "[[:alnum:]]" 0 154C "Q" "[[:alnum:]]" 0 155C "R" "[[:alnum:]]" 0 156C "S" "[[:alnum:]]" 0 157C "T" "[[:alnum:]]" 0 158C "U" "[[:alnum:]]" 0 159C "V" "[[:alnum:]]" 0 160C "W" "[[:alnum:]]" 0 161C "X" "[[:alnum:]]" 0 162C "Y" "[[:alnum:]]" 0 163C "Z" "[[:alnum:]]" 0 164C "0" "[[:alnum:]]" 0 165C "1" "[[:alnum:]]" 0 166C "2" "[[:alnum:]]" 0 167C "3" "[[:alnum:]]" 0 168C "4" "[[:alnum:]]" 0 169C "5" "[[:alnum:]]" 0 170C "6" "[[:alnum:]]" 0 171C "7" "[[:alnum:]]" 0 172C "8" "[[:alnum:]]" 0 173C "9" "[[:alnum:]]" 0 174C "!" "[[:alnum:]]" NOMATCH 175C "#" "[[:alnum:]]" NOMATCH 176C "%" "[[:alnum:]]" NOMATCH 177C "+" "[[:alnum:]]" NOMATCH 178C "," "[[:alnum:]]" NOMATCH 179C "-" "[[:alnum:]]" NOMATCH 180C "." "[[:alnum:]]" NOMATCH 181C "/" "[[:alnum:]]" NOMATCH 182C ":" "[[:alnum:]]" NOMATCH 183C ";" "[[:alnum:]]" NOMATCH 184C "=" "[[:alnum:]]" NOMATCH 185C "@" "[[:alnum:]]" NOMATCH 186C "[" "[[:alnum:]]" NOMATCH 187C "\\" "[[:alnum:]]" NOMATCH 188C "]" "[[:alnum:]]" NOMATCH 189C "^" "[[:alnum:]]" NOMATCH 190C "_" "[[:alnum:]]" NOMATCH 191C "{" "[[:alnum:]]" NOMATCH 192C "}" "[[:alnum:]]" NOMATCH 193C "~" "[[:alnum:]]" NOMATCH 194C "\"" "[[:alnum:]]" NOMATCH 195C "$" "[[:alnum:]]" NOMATCH 196C "&" "[[:alnum:]]" NOMATCH 197C "'" "[[:alnum:]]" NOMATCH 198C "(" "[[:alnum:]]" NOMATCH 199C ")" "[[:alnum:]]" NOMATCH 200C "*" "[[:alnum:]]" NOMATCH 201C "?" "[[:alnum:]]" NOMATCH 202C "`" "[[:alnum:]]" NOMATCH 203C "|" "[[:alnum:]]" NOMATCH 204C "<" "[[:alnum:]]" NOMATCH 205C ">" "[[:alnum:]]" NOMATCH 206C "\t" "[[:cntrl:]]" 0 207C "t" "[[:cntrl:]]" NOMATCH 208C "t" "[[:lower:]]" 0 209C "\t" "[[:lower:]]" NOMATCH 210C "T" "[[:lower:]]" NOMATCH 211C "\t" "[[:space:]]" 0 212C "t" "[[:space:]]" NOMATCH 213C "t" "[[:alpha:]]" 0 214C "\t" "[[:alpha:]]" NOMATCH 215C "0" "[[:digit:]]" 0 216C "\t" "[[:digit:]]" NOMATCH 217C "t" "[[:digit:]]" NOMATCH 218C "\t" "[[:print:]]" NOMATCH 219C "t" "[[:print:]]" 0 220C "T" "[[:upper:]]" 0 221C "\t" "[[:upper:]]" NOMATCH 222C "t" "[[:upper:]]" NOMATCH 223C "\t" "[[:blank:]]" 0 224C "t" "[[:blank:]]" NOMATCH 225C "\t" "[[:graph:]]" NOMATCH 226C "t" "[[:graph:]]" 0 227C "." "[[:punct:]]" 0 228C "t" "[[:punct:]]" NOMATCH 229C "\t" "[[:punct:]]" NOMATCH 230C "0" "[[:xdigit:]]" 0 231C "\t" "[[:xdigit:]]" NOMATCH 232C "a" "[[:xdigit:]]" 0 233C "A" "[[:xdigit:]]" 0 234C "t" "[[:xdigit:]]" NOMATCH 235C "a" "[[alpha]]" NOMATCH 236C "a" "[[alpha:]]" NOMATCH 237C "a]" "[[alpha]]" 0 238C "a]" "[[alpha:]]" 0 239C "a" "[[:alpha:][.b.]]" 0 240C "a" "[[:alpha:][=b=]]" 0 241C "a" "[[:alpha:][:digit:]]" 0 242C "a" "[[:digit:][:alpha:]]" 0 243 244# B.6 018(C) 245C "a" "[a-c]" 0 246C "b" "[a-c]" 0 247C "c" "[a-c]" 0 248C "a" "[b-c]" NOMATCH 249C "d" "[b-c]" NOMATCH 250C "B" "[a-c]" NOMATCH 251C "b" "[A-C]" NOMATCH 252C "" "[a-c]" NOMATCH 253C "as" "[a-ca-z]" NOMATCH 254C "a" "[[.a.]-c]" 0 255C "a" "[a-[.c.]]" 0 256C "a" "[[.a.]-[.c.]]" 0 257C "b" "[[.a.]-c]" 0 258C "b" "[a-[.c.]]" 0 259C "b" "[[.a.]-[.c.]]" 0 260C "c" "[[.a.]-c]" 0 261C "c" "[a-[.c.]]" 0 262C "c" "[[.a.]-[.c.]]" 0 263C "d" "[[.a.]-c]" NOMATCH 264C "d" "[a-[.c.]]" NOMATCH 265C "d" "[[.a.]-[.c.]]" NOMATCH 266 267# B.6 019(C) 268C "a" "[c-a]" NOMATCH 269C "a" "[[.c.]-a]" NOMATCH 270C "a" "[c-[.a.]]" NOMATCH 271C "a" "[[.c.]-[.a.]]" NOMATCH 272C "c" "[c-a]" NOMATCH 273C "c" "[[.c.]-a]" NOMATCH 274C "c" "[c-[.a.]]" NOMATCH 275C "c" "[[.c.]-[.a.]]" NOMATCH 276 277# B.6 020(C) 278C "a" "[a-c0-9]" 0 279C "d" "[a-c0-9]" NOMATCH 280C "B" "[a-c0-9]" NOMATCH 281 282# B.6 021(C) 283C "-" "[-a]" 0 284C "a" "[-b]" NOMATCH 285C "-" "[!-a]" NOMATCH 286C "a" "[!-b]" 0 287C "-" "[a-c-0-9]" 0 288C "b" "[a-c-0-9]" 0 289C "a:" "a[0-9-a]" NOMATCH 290C "a:" "a[09-a]" 0 291 292# B.6 024(C) 293C "" "*" 0 294C "asd/sdf" "*" 0 295 296# B.6 025(C) 297C "as" "[a-c][a-z]" 0 298C "as" "??" 0 299 300# B.6 026(C) 301C "asd/sdf" "as*df" 0 302C "asd/sdf" "as*" 0 303C "asd/sdf" "*df" 0 304C "asd/sdf" "as*dg" NOMATCH 305C "asdf" "as*df" 0 306C "asdf" "as*df?" NOMATCH 307C "asdf" "as*??" 0 308C "asdf" "a*???" 0 309C "asdf" "*????" 0 310C "asdf" "????*" 0 311C "asdf" "??*?" 0 312 313# B.6 027(C) 314C "/" "/" 0 315C "/" "/*" 0 316C "/" "*/" 0 317C "/" "/?" NOMATCH 318C "/" "?/" NOMATCH 319C "/" "?" 0 320C "." "?" 0 321C "/." "??" 0 322C "/" "[!a-c]" 0 323C "." "[!a-c]" 0 324 325# B.6 029(C) 326C "/" "/" 0 PATHNAME 327C "//" "//" 0 PATHNAME 328C "/.a" "/*" 0 PATHNAME 329C "/.a" "/?a" 0 PATHNAME 330C "/.a" "/[!a-z]a" 0 PATHNAME 331C "/.a/.b" "/*/?b" 0 PATHNAME 332 333# B.6 030(C) 334C "/" "?" NOMATCH PATHNAME 335C "/" "*" NOMATCH PATHNAME 336C "a/b" "a?b" NOMATCH PATHNAME 337C "/.a/.b" "/*b" NOMATCH PATHNAME 338 339# B.6 031(C) 340C "/$" "\\/\\$" 0 341C "/[" "\\/\\[" 0 342C "/[" "\\/[" NOMATCH 343 344# B.6 032(C) 345C "/$" "\\/\\$" NOMATCH NOESCAPE 346C "/\\$" "\\/\\$" NOMATCH NOESCAPE 347C "\\/\\$" "\\/\\$" 0 NOESCAPE 348 349# B.6 033(C) 350C ".asd" ".*" 0 PERIOD 351C "/.asd" "*" 0 PERIOD 352C "/as/.df" "*/?*f" 0 PERIOD 353C "..asd" ".[!a-z]*" 0 PERIOD 354 355# B.6 034(C) 356C ".asd" "*" NOMATCH PERIOD 357C ".asd" "?asd" NOMATCH PERIOD 358C ".asd" "[!a-z]*" NOMATCH PERIOD 359 360# B.6 035(C) 361C "/." "/." 0 PATHNAME|PERIOD 362C "/.a./.b." "/.*/.*" 0 PATHNAME|PERIOD 363C "/.a./.b." "/.??/.??" 0 PATHNAME|PERIOD 364 365# B.6 036(C) 366C "/." "*" NOMATCH PATHNAME|PERIOD 367C "/." "/*" NOMATCH PATHNAME|PERIOD 368C "/." "/?" NOMATCH PATHNAME|PERIOD 369C "/." "/[!a-z]" NOMATCH PATHNAME|PERIOD 370C "/a./.b." "/*/*" NOMATCH PATHNAME|PERIOD 371C "/a./.b." "/??/???" NOMATCH PATHNAME|PERIOD 372 373# Some home-grown tests. 374C "foobar" "foo*[abc]z" NOMATCH 375C "foobaz" "foo*[abc][xyz]" 0 376C "foobaz" "foo?*[abc][xyz]" 0 377C "foobaz" "foo?*[abc][x/yz]" 0 378C "foobaz" "foo?*[abc]/[xyz]" NOMATCH PATHNAME 379C "a" "a/" NOMATCH PATHNAME 380C "a/" "a" NOMATCH PATHNAME 381C "//a" "/a" NOMATCH PATHNAME 382C "/a" "//a" NOMATCH PATHNAME 383C "az" "[a-]z" 0 384C "bz" "[ab-]z" 0 385C "cz" "[ab-]z" NOMATCH 386C "-z" "[ab-]z" 0 387C "az" "[-a]z" 0 388C "bz" "[-ab]z" 0 389C "cz" "[-ab]z" NOMATCH 390C "-z" "[-ab]z" 0 391C "\\" "[\\\\-a]" 0 392C "_" "[\\\\-a]" 0 393C "a" "[\\\\-a]" 0 394C "-" "[\\\\-a]" NOMATCH 395C "\\" "[\\]-a]" NOMATCH 396C "_" "[\\]-a]" 0 397C "a" "[\\]-a]" 0 398C "]" "[\\]-a]" 0 399C "-" "[\\]-a]" NOMATCH 400C "\\" "[!\\\\-a]" NOMATCH 401C "_" "[!\\\\-a]" NOMATCH 402C "a" "[!\\\\-a]" NOMATCH 403C "-" "[!\\\\-a]" 0 404C "!" "[\\!-]" 0 405C "-" "[\\!-]" 0 406C "\\" "[\\!-]" NOMATCH 407C "Z" "[Z-\\\\]" 0 408C "[" "[Z-\\\\]" 0 409C "\\" "[Z-\\\\]" 0 410C "-" "[Z-\\\\]" NOMATCH 411C "Z" "[Z-\\]]" 0 412C "[" "[Z-\\]]" 0 413C "\\" "[Z-\\]]" 0 414C "]" "[Z-\\]]" 0 415C "-" "[Z-\\]]" NOMATCH 416 417# Following are tests outside the scope of IEEE 2003.2 since they are using 418# locales other than the C locale. The main focus of the tests is on the 419# handling of ranges and the recognition of character (vs bytes). 420de_DE.ISO-8859-1 "a" "[a-z]" 0 421de_DE.ISO-8859-1 "z" "[a-z]" 0 422de_DE.ISO-8859-1 "�" "[a-z]" 0 423de_DE.ISO-8859-1 "�" "[a-z]" 0 424de_DE.ISO-8859-1 "�" "[a-z]" 0 425de_DE.ISO-8859-1 "A" "[a-z]" NOMATCH 426de_DE.ISO-8859-1 "Z" "[a-z]" NOMATCH 427de_DE.ISO-8859-1 "�" "[a-z]" NOMATCH 428de_DE.ISO-8859-1 "�" "[a-z]" NOMATCH 429de_DE.ISO-8859-1 "�" "[a-z]" NOMATCH 430de_DE.ISO-8859-1 "a" "[A-Z]" NOMATCH 431de_DE.ISO-8859-1 "z" "[A-Z]" NOMATCH 432de_DE.ISO-8859-1 "�" "[A-Z]" NOMATCH 433de_DE.ISO-8859-1 "�" "[A-Z]" NOMATCH 434de_DE.ISO-8859-1 "�" "[A-Z]" NOMATCH 435de_DE.ISO-8859-1 "A" "[A-Z]" 0 436de_DE.ISO-8859-1 "Z" "[A-Z]" 0 437de_DE.ISO-8859-1 "�" "[A-Z]" 0 438de_DE.ISO-8859-1 "�" "[A-Z]" 0 439de_DE.ISO-8859-1 "�" "[A-Z]" 0 440de_DE.ISO-8859-1 "a" "[[:lower:]]" 0 441de_DE.ISO-8859-1 "z" "[[:lower:]]" 0 442de_DE.ISO-8859-1 "�" "[[:lower:]]" 0 443de_DE.ISO-8859-1 "�" "[[:lower:]]" 0 444de_DE.ISO-8859-1 "�" "[[:lower:]]" 0 445de_DE.ISO-8859-1 "A" "[[:lower:]]" NOMATCH 446de_DE.ISO-8859-1 "Z" "[[:lower:]]" NOMATCH 447de_DE.ISO-8859-1 "�" "[[:lower:]]" NOMATCH 448de_DE.ISO-8859-1 "�" "[[:lower:]]" NOMATCH 449de_DE.ISO-8859-1 "�" "[[:lower:]]" NOMATCH 450de_DE.ISO-8859-1 "a" "[[:upper:]]" NOMATCH 451de_DE.ISO-8859-1 "z" "[[:upper:]]" NOMATCH 452de_DE.ISO-8859-1 "�" "[[:upper:]]" NOMATCH 453de_DE.ISO-8859-1 "�" "[[:upper:]]" NOMATCH 454de_DE.ISO-8859-1 "�" "[[:upper:]]" NOMATCH 455de_DE.ISO-8859-1 "A" "[[:upper:]]" 0 456de_DE.ISO-8859-1 "Z" "[[:upper:]]" 0 457de_DE.ISO-8859-1 "�" "[[:upper:]]" 0 458de_DE.ISO-8859-1 "�" "[[:upper:]]" 0 459de_DE.ISO-8859-1 "�" "[[:upper:]]" 0 460de_DE.ISO-8859-1 "a" "[[:alpha:]]" 0 461de_DE.ISO-8859-1 "z" "[[:alpha:]]" 0 462de_DE.ISO-8859-1 "�" "[[:alpha:]]" 0 463de_DE.ISO-8859-1 "�" "[[:alpha:]]" 0 464de_DE.ISO-8859-1 "�" "[[:alpha:]]" 0 465de_DE.ISO-8859-1 "A" "[[:alpha:]]" 0 466de_DE.ISO-8859-1 "Z" "[[:alpha:]]" 0 467de_DE.ISO-8859-1 "�" "[[:alpha:]]" 0 468de_DE.ISO-8859-1 "�" "[[:alpha:]]" 0 469de_DE.ISO-8859-1 "�" "[[:alpha:]]" 0 470 471de_DE.ISO-8859-1 "a" "[[=a=]b]" 0 472de_DE.ISO-8859-1 "�" "[[=a=]b]" 0 473de_DE.ISO-8859-1 "�" "[[=a=]b]" 0 474de_DE.ISO-8859-1 "�" "[[=a=]b]" 0 475de_DE.ISO-8859-1 "�" "[[=a=]b]" 0 476de_DE.ISO-8859-1 "b" "[[=a=]b]" 0 477de_DE.ISO-8859-1 "c" "[[=a=]b]" NOMATCH 478de_DE.ISO-8859-1 "a" "[[=�=]b]" 0 479de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 480de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 481de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 482de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 483de_DE.ISO-8859-1 "b" "[[=�=]b]" 0 484de_DE.ISO-8859-1 "c" "[[=�=]b]" NOMATCH 485de_DE.ISO-8859-1 "a" "[[=�=]b]" 0 486de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 487de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 488de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 489de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 490de_DE.ISO-8859-1 "b" "[[=�=]b]" 0 491de_DE.ISO-8859-1 "c" "[[=�=]b]" NOMATCH 492de_DE.ISO-8859-1 "a" "[[=�=]b]" 0 493de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 494de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 495de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 496de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 497de_DE.ISO-8859-1 "b" "[[=�=]b]" 0 498de_DE.ISO-8859-1 "c" "[[=�=]b]" NOMATCH 499de_DE.ISO-8859-1 "a" "[[=�=]b]" 0 500de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 501de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 502de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 503de_DE.ISO-8859-1 "�" "[[=�=]b]" 0 504de_DE.ISO-8859-1 "b" "[[=�=]b]" 0 505de_DE.ISO-8859-1 "c" "[[=�=]b]" NOMATCH 506 507de_DE.ISO-8859-1 "aa" "[[.a.]]a" 0 508de_DE.ISO-8859-1 "ba" "[[.a.]]a" NOMATCH 509 510 511# And with a multibyte character set. 512de_DE.UTF-8 "a" "[a-z]" 0 513de_DE.UTF-8 "z" "[a-z]" 0 514de_DE.UTF-8 "ä" "[a-z]" 0 515de_DE.UTF-8 "ö" "[a-z]" 0 516de_DE.UTF-8 "ü" "[a-z]" 0 517de_DE.UTF-8 "A" "[a-z]" NOMATCH 518de_DE.UTF-8 "Z" "[a-z]" NOMATCH 519de_DE.UTF-8 "Ä" "[a-z]" NOMATCH 520de_DE.UTF-8 "Ö" "[a-z]" NOMATCH 521de_DE.UTF-8 "Ü" "[a-z]" NOMATCH 522de_DE.UTF-8 "a" "[A-Z]" NOMATCH 523de_DE.UTF-8 "z" "[A-Z]" NOMATCH 524de_DE.UTF-8 "ä" "[A-Z]" NOMATCH 525de_DE.UTF-8 "ö" "[A-Z]" NOMATCH 526de_DE.UTF-8 "ü" "[A-Z]" NOMATCH 527de_DE.UTF-8 "A" "[A-Z]" 0 528de_DE.UTF-8 "Z" "[A-Z]" 0 529de_DE.UTF-8 "Ä" "[A-Z]" 0 530de_DE.UTF-8 "Ö" "[A-Z]" 0 531de_DE.UTF-8 "Ü" "[A-Z]" 0 532de_DE.UTF-8 "a" "[[:lower:]]" 0 533de_DE.UTF-8 "z" "[[:lower:]]" 0 534de_DE.UTF-8 "ä" "[[:lower:]]" 0 535de_DE.UTF-8 "ö" "[[:lower:]]" 0 536de_DE.UTF-8 "ü" "[[:lower:]]" 0 537de_DE.UTF-8 "A" "[[:lower:]]" NOMATCH 538de_DE.UTF-8 "Z" "[[:lower:]]" NOMATCH 539de_DE.UTF-8 "Ä" "[[:lower:]]" NOMATCH 540de_DE.UTF-8 "Ö" "[[:lower:]]" NOMATCH 541de_DE.UTF-8 "Ü" "[[:lower:]]" NOMATCH 542de_DE.UTF-8 "a" "[[:upper:]]" NOMATCH 543de_DE.UTF-8 "z" "[[:upper:]]" NOMATCH 544de_DE.UTF-8 "ä" "[[:upper:]]" NOMATCH 545de_DE.UTF-8 "ö" "[[:upper:]]" NOMATCH 546de_DE.UTF-8 "ü" "[[:upper:]]" NOMATCH 547de_DE.UTF-8 "A" "[[:upper:]]" 0 548de_DE.UTF-8 "Z" "[[:upper:]]" 0 549de_DE.UTF-8 "Ä" "[[:upper:]]" 0 550de_DE.UTF-8 "Ö" "[[:upper:]]" 0 551de_DE.UTF-8 "Ü" "[[:upper:]]" 0 552de_DE.UTF-8 "a" "[[:alpha:]]" 0 553de_DE.UTF-8 "z" "[[:alpha:]]" 0 554de_DE.UTF-8 "ä" "[[:alpha:]]" 0 555de_DE.UTF-8 "ö" "[[:alpha:]]" 0 556de_DE.UTF-8 "ü" "[[:alpha:]]" 0 557de_DE.UTF-8 "A" "[[:alpha:]]" 0 558de_DE.UTF-8 "Z" "[[:alpha:]]" 0 559de_DE.UTF-8 "Ä" "[[:alpha:]]" 0 560de_DE.UTF-8 "Ö" "[[:alpha:]]" 0 561de_DE.UTF-8 "Ü" "[[:alpha:]]" 0 562 563de_DE.UTF-8 "a" "[[=a=]b]" 0 564de_DE.UTF-8 "â" "[[=a=]b]" 0 565de_DE.UTF-8 "à" "[[=a=]b]" 0 566de_DE.UTF-8 "á" "[[=a=]b]" 0 567de_DE.UTF-8 "ä" "[[=a=]b]" 0 568de_DE.UTF-8 "b" "[[=a=]b]" 0 569de_DE.UTF-8 "c" "[[=a=]b]" NOMATCH 570de_DE.UTF-8 "a" "[[=â=]b]" 0 571de_DE.UTF-8 "â" "[[=â=]b]" 0 572de_DE.UTF-8 "à" "[[=â=]b]" 0 573de_DE.UTF-8 "á" "[[=â=]b]" 0 574de_DE.UTF-8 "ä" "[[=â=]b]" 0 575de_DE.UTF-8 "b" "[[=â=]b]" 0 576de_DE.UTF-8 "c" "[[=â=]b]" NOMATCH 577de_DE.UTF-8 "a" "[[=à=]b]" 0 578de_DE.UTF-8 "â" "[[=à=]b]" 0 579de_DE.UTF-8 "à" "[[=à=]b]" 0 580de_DE.UTF-8 "á" "[[=à=]b]" 0 581de_DE.UTF-8 "ä" "[[=à=]b]" 0 582de_DE.UTF-8 "b" "[[=à=]b]" 0 583de_DE.UTF-8 "c" "[[=à=]b]" NOMATCH 584de_DE.UTF-8 "a" "[[=á=]b]" 0 585de_DE.UTF-8 "â" "[[=á=]b]" 0 586de_DE.UTF-8 "à" "[[=á=]b]" 0 587de_DE.UTF-8 "á" "[[=á=]b]" 0 588de_DE.UTF-8 "ä" "[[=á=]b]" 0 589de_DE.UTF-8 "b" "[[=á=]b]" 0 590de_DE.UTF-8 "c" "[[=á=]b]" NOMATCH 591de_DE.UTF-8 "a" "[[=ä=]b]" 0 592de_DE.UTF-8 "â" "[[=ä=]b]" 0 593de_DE.UTF-8 "à" "[[=ä=]b]" 0 594de_DE.UTF-8 "á" "[[=ä=]b]" 0 595de_DE.UTF-8 "ä" "[[=ä=]b]" 0 596de_DE.UTF-8 "b" "[[=ä=]b]" 0 597de_DE.UTF-8 "c" "[[=ä=]b]" NOMATCH 598 599de_DE.UTF-8 "aa" "[[.a.]]a" 0 600de_DE.UTF-8 "ba" "[[.a.]]a" NOMATCH 601 602 603# Test of GNU extensions. 604C "x" "x" 0 PATHNAME|LEADING_DIR 605C "x/y" "x" 0 PATHNAME|LEADING_DIR 606C "x/y/z" "x" 0 PATHNAME|LEADING_DIR 607C "x" "*" 0 PATHNAME|LEADING_DIR 608C "x/y" "*" 0 PATHNAME|LEADING_DIR 609C "x/y/z" "*" 0 PATHNAME|LEADING_DIR 610C "x" "*x" 0 PATHNAME|LEADING_DIR 611C "x/y" "*x" 0 PATHNAME|LEADING_DIR 612C "x/y/z" "*x" 0 PATHNAME|LEADING_DIR 613C "x" "x*" 0 PATHNAME|LEADING_DIR 614C "x/y" "x*" 0 PATHNAME|LEADING_DIR 615C "x/y/z" "x*" 0 PATHNAME|LEADING_DIR 616C "x" "a" NOMATCH PATHNAME|LEADING_DIR 617C "x/y" "a" NOMATCH PATHNAME|LEADING_DIR 618C "x/y/z" "a" NOMATCH PATHNAME|LEADING_DIR 619C "x" "x/y" NOMATCH PATHNAME|LEADING_DIR 620C "x/y" "x/y" 0 PATHNAME|LEADING_DIR 621C "x/y/z" "x/y" 0 PATHNAME|LEADING_DIR 622C "x" "x?y" NOMATCH PATHNAME|LEADING_DIR 623C "x/y" "x?y" NOMATCH PATHNAME|LEADING_DIR 624C "x/y/z" "x?y" NOMATCH PATHNAME|LEADING_DIR 625 626# ksh style matching. 627C "abcd" "?@(a|b)*@(c)d" 0 EXTMATCH 628C "/dev/udp/129.22.8.102/45" "/dev/@(tcp|udp)/*/*" 0 PATHNAME|EXTMATCH 629C "12" "[1-9]*([0-9])" 0 EXTMATCH 630C "12abc" "[1-9]*([0-9])" NOMATCH EXTMATCH 631C "1" "[1-9]*([0-9])" 0 EXTMATCH 632C "07" "+([0-7])" 0 EXTMATCH 633C "0377" "+([0-7])" 0 EXTMATCH 634C "09" "+([0-7])" NOMATCH EXTMATCH 635C "paragraph" "para@(chute|graph)" 0 EXTMATCH 636C "paramour" "para@(chute|graph)" NOMATCH EXTMATCH 637C "para991" "para?([345]|99)1" 0 EXTMATCH 638C "para381" "para?([345]|99)1" NOMATCH EXTMATCH 639C "paragraph" "para*([0-9])" NOMATCH EXTMATCH 640C "para" "para*([0-9])" 0 EXTMATCH 641C "para13829383746592" "para*([0-9])" 0 EXTMATCH 642C "paragraph" "para+([0-9])" NOMATCH EXTMATCH 643C "para" "para+([0-9])" NOMATCH EXTMATCH 644C "para987346523" "para+([0-9])" 0 EXTMATCH 645C "paragraph" "para!(*.[0-9])" 0 EXTMATCH 646C "para.38" "para!(*.[0-9])" 0 EXTMATCH 647C "para.graph" "para!(*.[0-9])" 0 EXTMATCH 648C "para39" "para!(*.[0-9])" 0 EXTMATCH 649C "" "*(0|1|3|5|7|9)" 0 EXTMATCH 650C "137577991" "*(0|1|3|5|7|9)" 0 EXTMATCH 651C "2468" "*(0|1|3|5|7|9)" NOMATCH EXTMATCH 652C "1358" "*(0|1|3|5|7|9)" NOMATCH EXTMATCH 653C "file.c" "*.c?(c)" 0 EXTMATCH 654C "file.C" "*.c?(c)" NOMATCH EXTMATCH 655C "file.cc" "*.c?(c)" 0 EXTMATCH 656C "file.ccc" "*.c?(c)" NOMATCH EXTMATCH 657C "parse.y" "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH 658C "shell.c" "!(*.c|*.h|Makefile.in|config*|README)" NOMATCH EXTMATCH 659C "Makefile" "!(*.c|*.h|Makefile.in|config*|README)" 0 EXTMATCH 660C "VMS.FILE;1" "*\;[1-9]*([0-9])" 0 EXTMATCH 661C "VMS.FILE;0" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH 662C "VMS.FILE;" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH 663C "VMS.FILE;139" "*\;[1-9]*([0-9])" 0 EXTMATCH 664C "VMS.FILE;1N" "*\;[1-9]*([0-9])" NOMATCH EXTMATCH 665C "abcfefg" "ab**(e|f)" 0 EXTMATCH 666C "abcfefg" "ab**(e|f)g" 0 EXTMATCH 667C "ab" "ab*+(e|f)" NOMATCH EXTMATCH 668C "abef" "ab***ef" 0 EXTMATCH 669C "abef" "ab**" 0 EXTMATCH 670C "fofo" "*(f*(o))" 0 EXTMATCH 671C "ffo" "*(f*(o))" 0 EXTMATCH 672C "foooofo" "*(f*(o))" 0 EXTMATCH 673C "foooofof" "*(f*(o))" 0 EXTMATCH 674C "fooofoofofooo" "*(f*(o))" 0 EXTMATCH 675C "foooofof" "*(f+(o))" NOMATCH EXTMATCH 676C "xfoooofof" "*(f*(o))" NOMATCH EXTMATCH 677C "foooofofx" "*(f*(o))" NOMATCH EXTMATCH 678C "ofxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH 679C "ofooofoofofooo" "*(f*(o))" NOMATCH EXTMATCH 680C "foooxfooxfoxfooox" "*(f*(o)x)" 0 EXTMATCH 681C "foooxfooxofoxfooox" "*(f*(o)x)" NOMATCH EXTMATCH 682C "foooxfooxfxfooox" "*(f*(o)x)" 0 EXTMATCH 683C "ofxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH 684C "ofoooxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH 685C "ofoooxoofxoofoooxoofxo" "*(*(of*(o)x)o)" 0 EXTMATCH 686C "ofoooxoofxoofoooxoofxoo" "*(*(of*(o)x)o)" 0 EXTMATCH 687C "ofoooxoofxoofoooxoofxofo" "*(*(of*(o)x)o)" NOMATCH EXTMATCH 688C "ofoooxoofxoofoooxoofxooofxofxo" "*(*(of*(o)x)o)" 0 EXTMATCH 689C "aac" "*(@(a))a@(c)" 0 EXTMATCH 690C "ac" "*(@(a))a@(c)" 0 EXTMATCH 691C "c" "*(@(a))a@(c)" NOMATCH EXTMATCH 692C "aaac" "*(@(a))a@(c)" 0 EXTMATCH 693C "baaac" "*(@(a))a@(c)" NOMATCH EXTMATCH 694C "abcd" "?@(a|b)*@(c)d" 0 EXTMATCH 695C "abcd" "@(ab|a*@(b))*(c)d" 0 EXTMATCH 696C "acd" "@(ab|a*(b))*(c)d" 0 EXTMATCH 697C "abbcd" "@(ab|a*(b))*(c)d" 0 EXTMATCH 698C "effgz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH 699C "efgz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH 700C "egz" "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH 701C "egzefffgzbcdij" "*(b+(c)d|e*(f)g?|?(h)i@(j|k))" 0 EXTMATCH 702C "egz" "@(b+(c)d|e+(f)g?|?(h)i@(j|k))" NOMATCH EXTMATCH 703C "ofoofo" "*(of+(o))" 0 EXTMATCH 704C "oxfoxoxfox" "*(oxf+(ox))" 0 EXTMATCH 705C "oxfoxfox" "*(oxf+(ox))" NOMATCH EXTMATCH 706C "ofoofo" "*(of+(o)|f)" 0 EXTMATCH 707C "foofoofo" "@(foo|f|fo)*(f|of+(o))" 0 EXTMATCH 708C "oofooofo" "*(of|oof+(o))" 0 EXTMATCH 709C "fffooofoooooffoofffooofff" "*(*(f)*(o))" 0 EXTMATCH 710C "fofoofoofofoo" "*(fo|foo)" 0 EXTMATCH 711C "foo" "!(x)" 0 EXTMATCH 712C "foo" "!(x)*" 0 EXTMATCH 713C "foo" "!(foo)" NOMATCH EXTMATCH 714C "foo" "!(foo)*" 0 EXTMATCH 715C "foobar" "!(foo)" 0 EXTMATCH 716C "foobar" "!(foo)*" 0 EXTMATCH 717C "moo.cow" "!(*.*).!(*.*)" 0 EXTMATCH 718C "mad.moo.cow" "!(*.*).!(*.*)" NOMATCH EXTMATCH 719C "mucca.pazza" "mu!(*(c))?.pa!(*(z))?" NOMATCH EXTMATCH 720C "fff" "!(f)" 0 EXTMATCH 721C "fff" "*(!(f))" 0 EXTMATCH 722C "fff" "+(!(f))" 0 EXTMATCH 723C "ooo" "!(f)" 0 EXTMATCH 724C "ooo" "*(!(f))" 0 EXTMATCH 725C "ooo" "+(!(f))" 0 EXTMATCH 726C "foo" "!(f)" 0 EXTMATCH 727C "foo" "*(!(f))" 0 EXTMATCH 728C "foo" "+(!(f))" 0 EXTMATCH 729C "f" "!(f)" NOMATCH EXTMATCH 730C "f" "*(!(f))" NOMATCH EXTMATCH 731C "f" "+(!(f))" NOMATCH EXTMATCH 732C "foot" "@(!(z*)|*x)" 0 EXTMATCH 733C "zoot" "@(!(z*)|*x)" NOMATCH EXTMATCH 734C "foox" "@(!(z*)|*x)" 0 EXTMATCH 735C "zoox" "@(!(z*)|*x)" 0 EXTMATCH 736C "foo" "*(!(foo)) 0 EXTMATCH 737C "foob" "!(foo)b*" NOMATCH EXTMATCH 738C "foobb" "!(foo)b*" 0 EXTMATCH 739C "[" "*([a[])" 0 EXTMATCH 740C "]" "*([]a[])" 0 EXTMATCH 741C "a" "*([]a[])" 0 EXTMATCH 742C "b" "*([!]a[])" 0 EXTMATCH 743C "[" "*([!]a[]|[[])" 0 EXTMATCH 744C "]" "*([!]a[]|[]])" 0 EXTMATCH 745C "[" "!([!]a[])" 0 EXTMATCH 746C "]" "!([!]a[])" 0 EXTMATCH 747C ")" "*([)])" 0 EXTMATCH 748C "*" "*([*(])" 0 EXTMATCH 749C "abcd" "*!(|a)cd" 0 EXTMATCH 750C "ab/.a" "+([abc])/*" NOMATCH EXTMATCH|PATHNAME|PERIOD 751C "" "" 0 752C "" "" 0 EXTMATCH 753C "" "*([abc])" 0 EXTMATCH 754C "" "?([abc])" 0 EXTMATCH 755