Diff of the two buildlogs: -- --- b1/build.log 2025-11-11 22:07:47.002685497 +0000 +++ b2/build.log 2025-11-11 22:09:12.218788700 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Dec 14 16:29:36 -12 2026 -I: pbuilder-time-stamp: 1797308976 +I: Current time: Wed Nov 12 12:07:48 +14 2025 +I: pbuilder-time-stamp: 1762898868 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -24,53 +24,85 @@ dpkg-source: info: unpacking node-micromatch_4.0.8+~4.0.10-1.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/186395/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/1391783/tmp/hooks/D01_modify_environment starting +debug: Running on ionos1-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Nov 11 22:07 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/1391783/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/1391783/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="3" [2]="3" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=40 nocheck' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='00f368a4150149fa91630bca4591c88e' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='186395' - PS1='# ' - PS2='> ' + INVOCATION_ID=b9d169853f2545649e7f51b30721b4a1 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=1391783 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.c4bd218L/pbuilderrc_KzN6 --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.c4bd218L/b1 --logfile b1/build.log node-micromatch_4.0.8+~4.0.10-1.dsc' - SUDO_GID='110' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='105' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://213.165.73.152:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.c4bd218L/pbuilderrc_QBkA --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.c4bd218L/b2 --logfile b2/build.log node-micromatch_4.0.8+~4.0.10-1.dsc' + SUDO_GID=110 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=105 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://46.16.76.132:3128 I: uname -a - Linux ionos5-amd64 6.12.48+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.48-1 (2025-09-20) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.12.48+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.48-1 (2025-09-20) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/186395/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/1391783/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -315,7 +347,7 @@ Get: 199 http://deb.debian.org/debian unstable/main amd64 node-yargs-parser all 21.1.1+~21.0.0-4 [28.4 kB] Get: 200 http://deb.debian.org/debian unstable/main amd64 node-yargs all 16.2.0+~16.0.4-7 [128 kB] Get: 201 http://deb.debian.org/debian unstable/main amd64 mocha all 10.7.2+ds1+~cs33.1.11-2 [185 kB] -Fetched 46.6 MB in 3s (17.0 MB/s) +Fetched 46.6 MB in 1s (88.5 MB/s) Preconfiguring packages ... Selecting previously unselected package netbase. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19866 files and directories currently installed.) @@ -1149,7 +1181,11 @@ Solving dependencies... 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/node-micromatch-4.0.8+~4.0.10/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../node-micromatch_4.0.8+~4.0.10-1_source.changes +I: user script /srv/workspace/pbuilder/1391783/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/1391783/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/node-micromatch-4.0.8+~4.0.10/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../node-micromatch_4.0.8+~4.0.10-1_source.changes dpkg-buildpackage: info: source package node-micromatch dpkg-buildpackage: info: source version 4.0.8+~4.0.10-1 dpkg-buildpackage: info: source distribution unstable @@ -1175,2160 +1211,7 @@ dh_auto_build --buildsystem=nodejs No build command found, searching known files No build command found, searching known files - dh_auto_test --buildsystem=nodejs - ln -s ../. node_modules/micromatch - /bin/sh -ex debian/tests/pkg-js/test -+ mocha -R spec - - - .all() - undefined should throw an error when value is not a string - undefined should return true when all patterns match the given string - undefined should return false when some patterns do not match - undefined should arrayify a string pattern - - .braceExpand() - undefined should throw an error when arguments are invalid - undefined should expand a brace pattern - - .braces() - undefined should throw an error when arguments are invalid - undefined should create a regex source string from a brace pattern - undefined should expand a brace pattern - - .capture() - undefined should return null if no match - undefined should return an empty array if there are no captures - undefined should capture stars - undefined should capture globstars - undefined should capture extglobs - undefined should capture paren groups - undefined should capture star groups - undefined should capture plus groups - undefined should capture optional groups - undefined should capture @ groups - undefined should capture negated groups - - .contains() - errors - undefined should throw an error arguments are invalid - patterns - undefined should correctly deal with empty patterns - undefined should return true when the path contains the pattern - undefined should be true when a glob pattern partially matches the path - undefined should return false when the path does not contain the pattern - undefined should match files that contain the given extension - undefined should not match files that do not contain the given extension - undefined should match dotfiles when a dot is explicitly defined in the pattern - undefined should match dotfiles when `dot` or `dotfiles` is set - undefined should not match dotfiles when `dot` or `dotfiles` is not set - undefined should match file paths - undefined should return true when full file paths are matched - undefined should match path segments - undefined should return false when full file paths are not matched - undefined should match paths with leading `./` - windows paths - undefined should match with common glob patterns - undefined should match files that contain the given extension - undefined should match dotfiles when `dot` is true - undefined should not match dotfiles when `dot` or `dotfiles` is not set - undefined should match file paths - undefined should return true when full file paths are matched - undefined should match path segments - undefined should return false when full file paths are not matched - undefined should match dotfiles when a dot is explicitly defined in the pattern - undefined should match paths with leading `./` - - .every() - undefined should return true if every string matches - undefined should return false when not all strings match - undefined should arrayify a string value - - .isMatch(): - error handling: - undefined should throw on bad args - alias: - undefined should have the alias .any(...) - matching: - undefined should escape plus signs to match string literals - undefined should not escape plus signs that follow brackets - undefined should support stars following brackets - undefined should not escape plus signs that follow parens - undefined should support stars following parens - undefined should not match slashes with single stars - undefined should not match dots with stars by default - undefined should match with non-glob patterns - undefined should match non-leading dots - undefined should match with common glob patterns - undefined should exactly match leading slash - undefined should match files with the given extension - undefined should match wildcards - undefined should match globstars - undefined issue #23 - undefined issue #24 - undefined should match slashes - undefined question marks should not match slashes - undefined should not match dotfiles when `dot` or `dotfiles` are not set - undefined should match dotfiles when `dot` or `dotfiles` is set - undefined should match file paths - undefined should match full file paths - undefined should match paths with leading `./` when pattern has `./` - undefined should match paths with leading `./` - errors - undefined should throw an error when value is not a string - empty patterns - undefined should throw an error when empty patterns are defined - non-globs - undefined should match literal paths - dots - undefined should match a dots with dots in the pattern - stars (single pattern) - undefined should return true when one of the given patterns matches the string - undefined should return false when the path does not match the pattern - undefined should match a path segment for each single star - undefined should regard non-exclusive double-stars as single stars - undefined should return false when full file paths are not matched - stars (multiple patterns) - undefined should return true when any of the patterns match - undefined should return false when none of the patterns match - file extensions - undefined should match files that contain the given extension - undefined should not match files that do not contain the given extension - dot files - undefined should match dotfiles when a dot is explicitly defined in the pattern - undefined should not match dotfiles when a dot is not defined in the pattern - undefined should match dotfiles when `dot` is set - undefined should not match dotfiles when `dot` is not set - dot-slash - undefined should match paths with leading `./` - - .makeRe() - undefined should throw an error when value is not a string - undefined should create a regex for a glob pattern - - .match() - posix paths - undefined should return an array of matches for a literal string - undefined should support regex logical or - undefined should support regex ranges - undefined should support negation patterns - windows paths - undefined should return an array of matches for a literal string - undefined should support regex logical or - undefined should support regex ranges - undefined should support negation patterns - - .matchKeys() - error handling - undefined should throw when the first argument is not an object - match object keys - undefined should return a new object with only keys that match the given glob pattern - - .matcher() - errors - undefined should throw an error when arguments are invalid - posix paths - undefined should return an array of matches for a literal string - undefined should support regex logical or - undefined should support regex ranges - undefined should support negation patterns - posix paths (array of patterns) - undefined should return an array of matches for a literal string - undefined should support regex logical or - undefined should support regex ranges - undefined should support negation patterns - backlashes for path separators, on posix - undefined should return an array of matches for a literal string - undefined should support regex logical or - undefined should support regex ranges - undefined should support negation patterns - windows paths - undefined should return an array of matches for a literal string - undefined should support regex logical or - undefined should support regex ranges - undefined should support negation patterns - - .not() - posix paths - undefined should return an array of matches for a literal string - undefined should support regex logical or - undefined should support regex ranges - undefined should support globs (*) - undefined should support globstars (**) - undefined should support negation patterns - windows paths - undefined should return an array of matches for a literal string - undefined should support regex logical or - undefined should support regex ranges - undefined should support globs (*) - undefined should support globstars (**) - undefined should support negation patterns - - .parse() - undefined should parse a glob - - .some() - undefined should return true if any matches are found - undefined should return false if no matches are found - undefined should arrayify a string value - - bash options and features: - bash - undefined should handle "regular globbing": - undefined should match directories: - undefined should use quoted characters as literals: - undefined should support quoted characters - undefined should respect escaped characters - undefined should respect escaped paths/dots: - undefined Pattern from Larry Wall's Configure that caused bash to blow up: - undefined should support character classes - undefined should support basic wildmatch (brackets) features - undefined should support extended slash-matching features - undefined should match literal parens - undefined should match escaped characters - undefined should match brackets - undefined should regard multiple consecutive stars as a single star - undefined none of these should output anything: - wildmat - undefined Basic wildmat features - undefined should support recursion - - bash.spec - dotglob - undefined "a/b/.x" should match "**/.x/**" - undefined ".x" should match "**/.x/**" - undefined ".x/" should match "**/.x/**" - undefined ".x/a" should match "**/.x/**" - undefined ".x/a/b" should match "**/.x/**" - undefined ".x/.x" should match "**/.x/**" - undefined "a/.x" should match "**/.x/**" - undefined "a/b/.x/c" should match "**/.x/**" - undefined "a/b/.x/c/d" should match "**/.x/**" - undefined "a/b/.x/c/d/e" should match "**/.x/**" - undefined "a/b/.x/" should match "**/.x/**" - undefined "a/.x/b" should match "**/.x/**" - undefined "a/.x/b/.x/c" should not match "**/.x/**" - undefined ".bashrc" should not match "?bashrc" - undefined should match trailing slashes with stars - undefined ".bar.baz/" should match ".*.*/" - undefined ".bar.baz" should match ".*.*" - glob - undefined "a/b/.x" should match "**/.x/**" - undefined ".x" should match "**/.x/**" - undefined ".x/" should match "**/.x/**" - undefined ".x/a" should match "**/.x/**" - undefined ".x/a/b" should match "**/.x/**" - undefined ".x/.x" should match "**/.x/**" - undefined "a/.x" should match "**/.x/**" - undefined "a/b/.x/c" should match "**/.x/**" - undefined "a/b/.x/c/d" should match "**/.x/**" - undefined "a/b/.x/c/d/e" should match "**/.x/**" - undefined "a/b/.x/" should match "**/.x/**" - undefined "a/.x/b" should match "**/.x/**" - undefined "a/.x/b/.x/c" should not match "**/.x/**" - undefined "a/c/b" should match "a/*/b" - undefined "a/.d/b" should not match "a/*/b" - undefined "a/./b" should not match "a/*/b" - undefined "a/../b" should not match "a/*/b" - undefined "ab" should match "ab**" - undefined "abcdef" should match "ab**" - undefined "abef" should match "ab**" - undefined "abcfef" should match "ab**" - undefined "ab" should not match "ab***ef" - undefined "abcdef" should match "ab***ef" - undefined "abef" should match "ab***ef" - undefined "abcfef" should match "ab***ef" - undefined ".bashrc" should not match "?bashrc" - undefined "abbc" should not match "ab?bc" - undefined "abc" should not match "ab?bc" - undefined "a.a" should match "[a-d]*.[a-b]" - undefined "a.b" should match "[a-d]*.[a-b]" - undefined "c.a" should match "[a-d]*.[a-b]" - undefined "a.a.a" should match "[a-d]*.[a-b]" - undefined "a.a.a" should match "[a-d]*.[a-b]*.[a-b]" - undefined "a.a" should match "*.[a-b]" - undefined "a.b" should match "*.[a-b]" - undefined "a.a.a" should match "*.[a-b]" - undefined "c.a" should match "*.[a-b]" - undefined "d.a.d" should not match "*.[a-b]" - undefined "a.bb" should not match "*.[a-b]" - undefined "a.ccc" should not match "*.[a-b]" - undefined "c.ccc" should not match "*.[a-b]" - undefined "a.a" should match "*.[a-b]*" - undefined "a.b" should match "*.[a-b]*" - undefined "a.a.a" should match "*.[a-b]*" - undefined "c.a" should match "*.[a-b]*" - undefined "d.a.d" should match "*.[a-b]*" - undefined "d.a.d" should not match "*.[a-b]*.[a-b]*" - undefined "d.a.d" should match "*.[a-d]*.[a-d]*" - undefined "a.bb" should match "*.[a-b]*" - undefined "a.ccc" should not match "*.[a-b]*" - undefined "c.ccc" should not match "*.[a-b]*" - undefined "a.a" should match "*[a-b].[a-b]*" - undefined "a.b" should match "*[a-b].[a-b]*" - undefined "a.a.a" should match "*[a-b].[a-b]*" - undefined "c.a" should not match "*[a-b].[a-b]*" - undefined "d.a.d" should not match "*[a-b].[a-b]*" - undefined "a.bb" should match "*[a-b].[a-b]*" - undefined "a.ccc" should not match "*[a-b].[a-b]*" - undefined "c.ccc" should not match "*[a-b].[a-b]*" - undefined "abd" should match "[a-y]*[^c]" - undefined "abe" should match "[a-y]*[^c]" - undefined "bb" should match "[a-y]*[^c]" - undefined "bcd" should match "[a-y]*[^c]" - undefined "ca" should match "[a-y]*[^c]" - undefined "cb" should match "[a-y]*[^c]" - undefined "dd" should match "[a-y]*[^c]" - undefined "de" should match "[a-y]*[^c]" - undefined "bdir/" should match "[a-y]*[^c]" - undefined "abd" should match "**/*" - globstar - undefined "a.js" should match "**/*.js" - undefined "a/a.js" should match "**/*.js" - undefined "a/a/b.js" should match "**/*.js" - undefined "a/b/z.js" should match "a/b/**/*.js" - undefined "a/b/c/z.js" should match "a/b/**/*.js" - undefined "foo.md" should match "**/*.md" - undefined "foo/bar.md" should match "**/*.md" - undefined "foo/bar" should match "foo/**/bar" - undefined "foo/bar" should match "foo/**bar" - undefined "ab/a/d" should match "**/*" - undefined "ab/b" should match "**/*" - undefined "a/b/c/d/a.js" should match "**/*" - undefined "a/b/c.js" should match "**/*" - undefined "a/b/c.txt" should match "**/*" - undefined "a/b/.js/c.txt" should match "**/*" - undefined "a.js" should match "**/*" - undefined "za.js" should match "**/*" - undefined "ab" should match "**/*" - undefined "a.b" should match "**/*" - undefined "foo/" should match "foo/**/" - undefined "foo/bar" should not match "foo/**/" - undefined "foo/bazbar" should not match "foo/**/" - undefined "foo/barbar" should not match "foo/**/" - undefined "foo/bar/baz/qux" should not match "foo/**/" - undefined "foo/bar/baz/qux/" should match "foo/**/" - - braces - compiled - extglob characters - undefined should expand braces (in extglobs) when preceded by an extglob character - undefined should expand braces when preceded by an extglob character - sets - invalid sets - undefined should handle invalid sets: - escaping - undefined should not expand escaped braces - undefined should handle spaces - undefined should handle empty braces - undefined should escape braces when only one value is defined - undefined should not expand braces in sets with es6/bash-like variables - undefined should not expand escaped commas. - undefined should return sets with escaped commas - undefined should not expand escaped braces. - undefined should not expand escaped braces or commas. - set expansion - undefined should support sequence brace operators - undefined should expand multiple sets - undefined should expand nested sets - undefined should expand not modify non-brace characters - commas - undefined should work with leading and trailing commas. - spaces - undefined should handle spaces - ranges - escaping / invalid ranges - undefined should not try to expand ranges with decimals - undefined should escape invalid ranges: - undefined weirdly-formed brace expansions -- fixed in post-bash-3.1 - undefined should not expand quoted strings. - undefined should escaped outer braces in nested non-sets - undefined should escape imbalanced braces - positive numeric ranges - undefined should expand numeric ranges - negative ranges - undefined should expand ranges with negative numbers - alphabetical ranges - undefined should expand alphabetical ranges - undefined should expand multiple ranges: - combo - undefined should expand numerical ranges - positive and negative - large numbers - undefined should expand large numbers - steps > positive ranges - undefined should expand ranges using steps: - undefined should expand positive ranges with negative steps: - steps > negative ranges - undefined should expand negative ranges using steps: - steps > alphabetical ranges - undefined should expand alpha ranges with steps - undefined should expand alpha ranges with negative steps - padding - undefined unwanted zero-padding -- fixed post-bash-4.0 - integration - undefined should work with dots in file paths - undefined should expand a complex combination of ranges and sets: - undefined should expand complex sets and ranges in `bash` mode: - - braces - undefined should return true when braces are found - undefined should handle extglobs in braces - undefined should not match with brace sets when disabled - undefined should not match with brace ranges when disabled - undefined should match with brace sets - undefined should match with brace ranges - undefined should not convert braces inside brackets - undefined should support braces with empty elements - undefined should support braces containing slashes - undefined should support braces with slashes and empty elements - undefined should support braces with escaped parens and stars - undefined should support braces in patterns with globstars - undefined should support globstars enclosed in braces, with slashes and empty elements - undefined should support braces with globstars and empty elements - undefined should support Kleene stars - undefined should support Kleene plus - undefined should support braces - undefined should support regex quantifiers by escaping braces - - dotfiles - file name matching - undefined should not match a dot when the dot is not explicitly defined - undefined should not match leading dots with question marks - undefined should match double dots with double dots - undefined should not match exclusive double or single dots - undefined should match dotfiles when there is a leading dot: - undefined should match dotfiles when there is not a leading dot: - undefined should use negation patterns on dotfiles: - undefined should match dotfiles when `options.dot` is true: - undefined should not match a dot when the dot is not explicitly defined - undefined should match a dot when the dot is explicitly defined - undefined should match dots in root path when glob is prefixed with **/ - undefined should not match dotfiles with single stars by default - undefined should work with dots in the path - undefined should not match dotfiles with globstars by default - undefined should match dotfiles when a leading dot is in the pattern - undefined should not match a dot when the dot is not explicitly defined - undefined should not match leading dots with question marks - undefined should match with double dots - multiple directories - undefined should not match a dot when the dot is not explicitly defined - options.dot - undefined should match dotfiles when `options.dot` is true - undefined should match dotfiles when `.dot` and `.matchBase` both defined - undefined should work when the path has leading `./` - undefined should not match dotfiles when `options.dot` is false - undefined should not match dotfiles when `.dot` is false and `.matchBase` is true - undefined should not match dotfiles when `.dot` is not defined and a dot is not in the glob pattern - - extglobs (bash) - undefined should not match empty string iwth "*(0|1|3|5|7|9)" - undefined "*(a|b[)" should not match "*(a|b\[)" - undefined "*(a|b[)" should not match "\*\(a|b\[\)" - undefined "***" should match "\*\*\*" - undefined "-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1" should not match "-*-*-*-*-*-*-12-*-*-*-m-*-*-*" - undefined "-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1" should match "-*-*-*-*-*-*-12-*-*-*-m-*-*-*" - undefined "-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1" should not match "-*-*-*-*-*-*-12-*-*-*-m-*-*-*" - undefined "/dev/udp/129.22.8.102/45" should match "/dev\/@(tcp|udp)\/*\/*" - undefined "/x/y/z" should match "/x/y/z" - undefined "0377" should match "+([0-7])" - undefined "07" should match "+([0-7])" - undefined "09" should not match "+([0-7])" - undefined "1" should match "0|[1-9]*([0-9])" - undefined "12" should match "0|[1-9]*([0-9])" - undefined "123abc" should not match "(a+|b)*" - undefined "123abc" should not match "(a+|b)+" - undefined "123abc" should match "*?(a)bc" - undefined "123abc" should not match "a(b*(foo|bar))d" - undefined "123abc" should not match "ab*(e|f)" - undefined "123abc" should not match "ab**" - undefined "123abc" should not match "ab**(e|f)" - undefined "123abc" should not match "ab**(e|f)g" - undefined "123abc" should not match "ab***ef" - undefined "123abc" should not match "ab*+(e|f)" - undefined "123abc" should not match "ab*d+(e|f)" - undefined "123abc" should not match "ab?*(e|f)" - undefined "12abc" should not match "0|[1-9]*([0-9])" - undefined "137577991" should match "*(0|1|3|5|7|9)" - undefined "2468" should not match "*(0|1|3|5|7|9)" - undefined "?a?b" should match "\??\?b" - undefined "\a\b\c" should not match "abc" - undefined "a" should match "!(*.a|*.b|*.c)" - undefined "a" should not match "!(a)" - undefined "a" should not match "!(a)*" - undefined "a" should match "(a)" - undefined "a" should not match "(b)" - undefined "a" should match "*(a)" - undefined "a" should match "+(a)" - undefined "a" should match "?" - undefined "a" should match "?(a|b)" - undefined "a" should not match "??" - undefined "a" should match "a!(b)*" - undefined "a" should match "a?(a|b)" - undefined "a" should match "a?(x)" - undefined "a" should not match "a??b" - undefined "a" should not match "b?(a|b)" - undefined "a((((b" should match "a(*b" - undefined "a((((b" should not match "a(b" - undefined "a((((b" should not match "a\(b" - undefined "a((b" should match "a(*b" - undefined "a((b" should not match "a(b" - undefined "a((b" should not match "a\(b" - undefined "a(b" should match "a(*b" - undefined "a(b" should match "a(b" - undefined "a\(b" should match "a\(b" - undefined "a(b" should match "a\(b" - undefined "a." should match "!(*.a|*.b|*.c)" - undefined "a." should match "*!(.a|.b|.c)" - undefined "a." should match "*.!(a)" - undefined "a." should match "*.!(a|b|c)" - undefined "a." should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "a." should not match "*.+(b|d)" - undefined "a.a" should not match "!(*.[a-b]*)" - undefined "a.a" should not match "!(*.a|*.b|*.c)" - undefined "a.a" should not match "!(*[a-b].[a-b]*)" - undefined "a.a" should not match "!*.(a|b)" - undefined "a.a" should not match "!*.(a|b)*" - undefined "a.a" should match "(a|d).(a|b)*" - undefined "a.a" should match "(b|a).(a)" - undefined "a.a" should match "*!(.a|.b|.c)" - undefined "a.a" should not match "*.!(a)" - undefined "a.a" should not match "*.!(a|b|c)" - undefined "a.a" should match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "a.a" should not match "*.+(b|d)" - undefined "a.a" should match "@(b|a).@(a)" - undefined "a.a.a" should not match "!(*.[a-b]*)" - undefined "a.a.a" should not match "!(*[a-b].[a-b]*)" - undefined "a.a.a" should not match "!*.(a|b)" - undefined "a.a.a" should not match "!*.(a|b)*" - undefined "a.a.a" should match "*.!(a)" - undefined "a.a.a" should not match "*.+(b|d)" - undefined "a.aa.a" should not match "(b|a).(a)" - undefined "a.aa.a" should not match "@(b|a).@(a)" - undefined "a.abcd" should match "!(*.a|*.b|*.c)" - undefined "a.abcd" should not match "!(*.a|*.b|*.c)*" - undefined "a.abcd" should match "*!(*.a|*.b|*.c)*" - undefined "a.abcd" should match "*!(.a|.b|.c)" - undefined "a.abcd" should match "*.!(a|b|c)" - undefined "a.abcd" should not match "*.!(a|b|c)*" - undefined "a.abcd" should match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "a.b" should not match "!(*.*)" - undefined "a.b" should not match "!(*.[a-b]*)" - undefined "a.b" should not match "!(*.a|*.b|*.c)" - undefined "a.b" should not match "!(*[a-b].[a-b]*)" - undefined "a.b" should not match "!*.(a|b)" - undefined "a.b" should not match "!*.(a|b)*" - undefined "a.b" should match "(a|d).(a|b)*" - undefined "a.b" should match "*!(.a|.b|.c)" - undefined "a.b" should match "*.!(a)" - undefined "a.b" should not match "*.!(a|b|c)" - undefined "a.b" should match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "a.b" should match "*.+(b|d)" - undefined "a.bb" should not match "!(*.[a-b]*)" - undefined "a.bb" should not match "!(*[a-b].[a-b]*)" - undefined "a.bb" should match "!*.(a|b)" - undefined "a.bb" should not match "!*.(a|b)*" - undefined "a.bb" should not match "!*.*(a|b)" - undefined "a.bb" should match "(a|d).(a|b)*" - undefined "a.bb" should not match "(b|a).(a)" - undefined "a.bb" should match "*.+(b|d)" - undefined "a.bb" should not match "@(b|a).@(a)" - undefined "a.c" should not match "!(*.a|*.b|*.c)" - undefined "a.c" should match "*!(.a|.b|.c)" - undefined "a.c" should not match "*.!(a|b|c)" - undefined "a.c" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "a.c.d" should match "!(*.a|*.b|*.c)" - undefined "a.c.d" should match "*!(.a|.b|.c)" - undefined "a.c.d" should match "*.!(a|b|c)" - undefined "a.c.d" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "a.ccc" should match "!(*.[a-b]*)" - undefined "a.ccc" should match "!(*[a-b].[a-b]*)" - undefined "a.ccc" should match "!*.(a|b)" - undefined "a.ccc" should match "!*.(a|b)*" - undefined "a.ccc" should not match "*.+(b|d)" - undefined "a.js" should not match "!(*.js)" - undefined "a.js" should match "*!(.js)" - undefined "a.js" should not match "*.!(js)" - undefined "a.js" should not match "a.!(js)" - undefined "a.js" should not match "a.!(js)*" - undefined "a.js.js" should not match "!(*.js)" - undefined "a.js.js" should match "*!(.js)" - undefined "a.js.js" should match "*.!(js)" - undefined "a.js.js" should match "*.*(js).js" - undefined "a.md" should match "!(*.js)" - undefined "a.md" should match "*!(.js)" - undefined "a.md" should match "*.!(js)" - undefined "a.md" should match "a.!(js)" - undefined "a.md" should match "a.!(js)*" - undefined "a.md.js" should not match "*.*(js).js" - undefined "a.txt" should match "a.!(js)" - undefined "a.txt" should match "a.!(js)*" - undefined "a/!(z)" should match "a/!(z)" - undefined "a/b" should match "a/!(z)" - undefined "a/b/c.txt" should not match "*/b/!(*).txt" - undefined "a/b/c.txt" should not match "*/b/!(c).txt" - undefined "a/b/c.txt" should match "*/b/!(cc).txt" - undefined "a/b/cc.txt" should not match "*/b/!(*).txt" - undefined "a/b/cc.txt" should not match "*/b/!(c).txt" - undefined "a/b/cc.txt" should not match "*/b/!(cc).txt" - undefined "a/dir/foo.txt" should match "*/dir/**/!(bar).txt" - undefined "a/z" should not match "a/!(z)" - undefined "a\(b" should not match "a(*b" - undefined "a\(b" should not match "a(b" - undefined "a\z" should match "a\z" - undefined "a\z" should match "a\z" - undefined "a\b" should match "a/b" - undefined "a\z" should match "a\z" - undefined "a\z" should not match "a\z" - undefined "aa" should not match "!(a!(b))" - undefined "aa" should match "!(a)" - undefined "aa" should not match "!(a)*" - undefined "aa" should not match "?" - undefined "aa" should not match "@(a)b" - undefined "aa" should match "a!(b)*" - undefined "aa" should not match "a??b" - undefined "aa.aa" should not match "(b|a).(a)" - undefined "aa.aa" should not match "@(b|a).@(a)" - undefined "aaa" should not match "!(a)*" - undefined "aaa" should match "a!(b)*" - undefined "aaaaaaabababab" should match "*ab" - undefined "aaac" should match "*(@(a))a@(c)" - undefined "aaaz" should match "[a*(]*z" - undefined "aab" should not match "!(a)*" - undefined "aab" should not match "?" - undefined "aab" should not match "??" - undefined "aab" should not match "@(c)b" - undefined "aab" should match "a!(b)*" - undefined "aab" should not match "a??b" - undefined "aac" should match "*(@(a))a@(c)" - undefined "aac" should not match "*(@(a))b@(c)" - undefined "aax" should not match "a!(a*|b)" - undefined "aax" should match "a!(x*|b)" - undefined "aax" should match "a?(a*|b)" - undefined "aaz" should match "[a*(]*z" - undefined "ab" should match "!(*.*)" - undefined "ab" should match "!(a!(b))" - undefined "ab" should not match "!(a)*" - undefined "ab" should match "@(a+|b)*" - undefined "ab" should match "(a+|b)+" - undefined "ab" should not match "*?(a)bc" - undefined "ab" should not match "a!(*(b|B))" - undefined "ab" should not match "a!(@(b|B))" - undefined "aB" should not match "a!(@(b|B))" - undefined "ab" should not match "a!(b)*" - undefined "ab" should not match "a(*b" - undefined "ab" should not match "a(b" - undefined "ab" should not match "a(b*(foo|bar))d" - undefined "ab" should not match "a/b" - undefined "ab" should not match "a\(b" - undefined "ab" should match "ab*(e|f)" - undefined "ab" should match "ab**" - undefined "ab" should match "ab**(e|f)" - undefined "ab" should not match "ab**(e|f)g" - undefined "ab" should not match "ab***ef" - undefined "ab" should not match "ab*+(e|f)" - undefined "ab" should not match "ab*d+(e|f)" - undefined "ab" should not match "ab?*(e|f)" - undefined "ab/cXd/efXg/hi" should match "**/*X*/**/*i" - undefined "ab/cXd/efXg/hi" should match "*/*X*/*/*i" - undefined "ab/cXd/efXg/hi" should match "*X*i" - undefined "ab/cXd/efXg/hi" should match "*Xg*i" - undefined "ab]" should match "a!(@(b|B))" - undefined "abab" should match "(a+|b)*" - undefined "abab" should match "(a+|b)+" - undefined "abab" should not match "*?(a)bc" - undefined "abab" should not match "a(b*(foo|bar))d" - undefined "abab" should not match "ab*(e|f)" - undefined "abab" should match "ab**" - undefined "abab" should match "ab**(e|f)" - undefined "abab" should not match "ab**(e|f)g" - undefined "abab" should not match "ab***ef" - undefined "abab" should not match "ab*+(e|f)" - undefined "abab" should not match "ab*d+(e|f)" - undefined "abab" should not match "ab?*(e|f)" - undefined "abb" should match "!(*.*)" - undefined "abb" should not match "!(a)*" - undefined "abb" should not match "a!(b)*" - undefined "abbcd" should match "@(ab|a*(b))*(c)d" - undefined "abc" should not match "\a\b\c" - undefined "aBc" should match "a!(@(b|B))" - undefined "abcd" should match "?@(a|b)*@(c)d" - undefined "abcd" should match "@(ab|a*@(b))*(c)d" - undefined "abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt" should match "**/*a*b*g*n*t" - undefined "abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz" should not match "**/*a*b*g*n*t" - undefined "abcdef" should match "(a+|b)*" - undefined "abcdef" should not match "(a+|b)+" - undefined "abcdef" should not match "*?(a)bc" - undefined "abcdef" should not match "a(b*(foo|bar))d" - undefined "abcdef" should not match "ab*(e|f)" - undefined "abcdef" should match "ab**" - undefined "abcdef" should match "ab**(e|f)" - undefined "abcdef" should not match "ab**(e|f)g" - undefined "abcdef" should match "ab***ef" - undefined "abcdef" should match "ab*+(e|f)" - undefined "abcdef" should match "ab*d+(e|f)" - undefined "abcdef" should not match "ab?*(e|f)" - undefined "abcfef" should match "(a+|b)*" - undefined "abcfef" should not match "(a+|b)+" - undefined "abcfef" should not match "*?(a)bc" - undefined "abcfef" should not match "a(b*(foo|bar))d" - undefined "abcfef" should not match "ab*(e|f)" - undefined "abcfef" should match "ab**" - undefined "abcfef" should match "ab**(e|f)" - undefined "abcfef" should not match "ab**(e|f)g" - undefined "abcfef" should match "ab***ef" - undefined "abcfef" should match "ab*+(e|f)" - undefined "abcfef" should not match "ab*d+(e|f)" - undefined "abcfef" should match "ab?*(e|f)" - undefined "abcfefg" should match "(a+|b)*" - undefined "abcfefg" should not match "(a+|b)+" - undefined "abcfefg" should not match "*?(a)bc" - undefined "abcfefg" should not match "a(b*(foo|bar))d" - undefined "abcfefg" should not match "ab*(e|f)" - undefined "abcfefg" should match "ab**" - undefined "abcfefg" should match "ab**(e|f)" - undefined "abcfefg" should match "ab**(e|f)g" - undefined "abcfefg" should not match "ab***ef" - undefined "abcfefg" should not match "ab*+(e|f)" - undefined "abcfefg" should not match "ab*d+(e|f)" - undefined "abcfefg" should not match "ab?*(e|f)" - undefined "abcx" should match "!([[*])*" - undefined "abcx" should match "+(a|b\[)*" - undefined "abcx" should not match "[a*(]*z" - undefined "abcXdefXghi" should match "*X*i" - undefined "abcz" should match "!([[*])*" - undefined "abcz" should match "+(a|b\[)*" - undefined "abcz" should match "[a*(]*z" - undefined "abd" should match "(a+|b)*" - undefined "abd" should not match "(a+|b)+" - undefined "abd" should not match "*?(a)bc" - undefined "abd" should match "a!(*(b|B))" - undefined "abd" should match "a!(@(b|B))" - undefined "abd" should not match "a!(@(b|B))d" - undefined "abd" should match "a(b*(foo|bar))d" - undefined "abd" should match "a+(b|c)d" - undefined "abd" should match "a[b*(foo|bar)]d" - undefined "abd" should not match "ab*(e|f)" - undefined "abd" should match "ab**" - undefined "abd" should match "ab**(e|f)" - undefined "abd" should not match "ab**(e|f)g" - undefined "abd" should not match "ab***ef" - undefined "abd" should not match "ab*+(e|f)" - undefined "abd" should not match "ab*d+(e|f)" - undefined "abd" should match "ab?*(e|f)" - undefined "abef" should match "(a+|b)*" - undefined "abef" should not match "(a+|b)+" - undefined "abef" should not match "*(a+|b)" - undefined "abef" should not match "*?(a)bc" - undefined "abef" should not match "a(b*(foo|bar))d" - undefined "abef" should match "ab*(e|f)" - undefined "abef" should match "ab**" - undefined "abef" should match "ab**(e|f)" - undefined "abef" should not match "ab**(e|f)g" - undefined "abef" should match "ab***ef" - undefined "abef" should match "ab*+(e|f)" - undefined "abef" should not match "ab*d+(e|f)" - undefined "abef" should match "ab?*(e|f)" - undefined "abz" should not match "a!(*)" - undefined "abz" should match "a!(z)" - undefined "abz" should match "a*!(z)" - undefined "abz" should not match "a*(z)" - undefined "abz" should match "a**(z)" - undefined "abz" should match "a*@(z)" - undefined "abz" should not match "a+(z)" - undefined "abz" should not match "a?(z)" - undefined "abz" should not match "a@(z)" - undefined "ac" should not match "!(a)*" - undefined "ac" should match "*(@(a))a@(c)" - undefined "ac" should match "a!(*(b|B))" - undefined "ac" should match "a!(@(b|B))" - undefined "ac" should match "a!(b)*" - undefined "accdef" should match "(a+|b)*" - undefined "accdef" should not match "(a+|b)+" - undefined "accdef" should not match "*?(a)bc" - undefined "accdef" should not match "a(b*(foo|bar))d" - undefined "accdef" should not match "ab*(e|f)" - undefined "accdef" should not match "ab**" - undefined "accdef" should not match "ab**(e|f)" - undefined "accdef" should not match "ab**(e|f)g" - undefined "accdef" should not match "ab***ef" - undefined "accdef" should not match "ab*+(e|f)" - undefined "accdef" should not match "ab*d+(e|f)" - undefined "accdef" should not match "ab?*(e|f)" - undefined "acd" should match "(a+|b)*" - undefined "acd" should not match "(a+|b)+" - undefined "acd" should not match "*?(a)bc" - undefined "acd" should match "@(ab|a*(b))*(c)d" - undefined "acd" should match "a!(*(b|B))" - undefined "acd" should match "a!(@(b|B))" - undefined "acd" should match "a!(@(b|B))d" - undefined "acd" should not match "a(b*(foo|bar))d" - undefined "acd" should match "a+(b|c)d" - undefined "acd" should not match "a[b*(foo|bar)]d" - undefined "acd" should not match "ab*(e|f)" - undefined "acd" should not match "ab**" - undefined "acd" should not match "ab**(e|f)" - undefined "acd" should not match "ab**(e|f)g" - undefined "acd" should not match "ab***ef" - undefined "acd" should not match "ab*+(e|f)" - undefined "acd" should not match "ab*d+(e|f)" - undefined "acd" should not match "ab?*(e|f)" - undefined "ax" should match "?(a*|b)" - undefined "ax" should not match "a?(b*)" - undefined "axz" should not match "a+(z)" - undefined "az" should not match "a!(*)" - undefined "az" should not match "a!(z)" - undefined "az" should match "a*!(z)" - undefined "az" should match "a*(z)" - undefined "az" should match "a**(z)" - undefined "az" should match "a*@(z)" - undefined "az" should match "a+(z)" - undefined "az" should match "a?(z)" - undefined "az" should match "a@(z)" - undefined "az" should not match "a\z" - undefined "az" should not match "a\z" - undefined "b" should match "!(a)*" - undefined "b" should match "(a+|b)*" - undefined "b" should not match "a!(b)*" - undefined "b.a" should match "(b|a).(a)" - undefined "b.a" should match "@(b|a).@(a)" - undefined "b/a" should not match "!(b/a)" - undefined "b/b" should match "!(b/a)" - undefined "b/c" should match "!(b/a)" - undefined "b/c" should not match "b/!(c)" - undefined "b/c" should match "b/!(cc)" - undefined "b/c.txt" should not match "b/!(c).txt" - undefined "b/c.txt" should match "b/!(cc).txt" - undefined "b/cc" should match "b/!(c)" - undefined "b/cc" should not match "b/!(cc)" - undefined "b/cc.txt" should not match "b/!(c).txt" - undefined "b/cc.txt" should not match "b/!(cc).txt" - undefined "b/ccc" should match "b/!(c)" - undefined "ba" should match "!(a!(b))" - undefined "ba" should match "b?(a|b)" - undefined "baaac" should not match "*(@(a))a@(c)" - undefined "bar" should match "!(foo)" - undefined "bar" should match "!(foo)*" - undefined "bar" should match "!(foo)b*" - undefined "bar" should match "*(!(foo))" - undefined "baz" should match "!(foo)*" - undefined "baz" should match "!(foo)b*" - undefined "baz" should match "*(!(foo))" - undefined "bb" should match "!(a!(b))" - undefined "bb" should match "!(a)*" - undefined "bb" should not match "a!(b)*" - undefined "bb" should not match "a?(a|b)" - undefined "bbc" should match "!([[*])*" - undefined "bbc" should not match "+(a|b\[)*" - undefined "bbc" should not match "[a*(]*z" - undefined "bz" should not match "a+(z)" - undefined "c" should not match "*(@(a))a@(c)" - undefined "c.a" should not match "!(*.[a-b]*)" - undefined "c.a" should match "!(*[a-b].[a-b]*)" - undefined "c.a" should not match "!*.(a|b)" - undefined "c.a" should not match "!*.(a|b)*" - undefined "c.a" should not match "(b|a).(a)" - undefined "c.a" should not match "*.!(a)" - undefined "c.a" should not match "*.+(b|d)" - undefined "c.a" should not match "@(b|a).@(a)" - undefined "c.c" should not match "!(*.a|*.b|*.c)" - undefined "c.c" should match "*!(.a|.b|.c)" - undefined "c.c" should not match "*.!(a|b|c)" - undefined "c.c" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "c.ccc" should match "!(*.[a-b]*)" - undefined "c.ccc" should match "!(*[a-b].[a-b]*)" - undefined "c.js" should not match "!(*.js)" - undefined "c.js" should match "*!(.js)" - undefined "c.js" should not match "*.!(js)" - undefined "c/a/v" should match "c/!(z)/v" - undefined "c/a/v" should not match "c/*(z)/v" - undefined "c/a/v" should not match "c/+(z)/v" - undefined "c/a/v" should not match "c/@(z)/v" - undefined "c/z/v" should not match "*(z)" - undefined "c/z/v" should not match "+(z)" - undefined "c/z/v" should not match "?(z)" - undefined "c/z/v" should not match "c/!(z)/v" - undefined "c/z/v" should match "c/*(z)/v" - undefined "c/z/v" should match "c/+(z)/v" - undefined "c/z/v" should match "c/@(z)/v" - undefined "c/z/v" should match "c/z/v" - undefined "cc.a" should not match "(b|a).(a)" - undefined "cc.a" should not match "@(b|a).@(a)" - undefined "ccc" should match "!(a)*" - undefined "ccc" should not match "a!(b)*" - undefined "cow" should match "!(*.*)" - undefined "cow" should not match "!(*.*)." - undefined "cow" should not match ".!(*.*)" - undefined "cz" should not match "a!(*)" - undefined "cz" should not match "a!(z)" - undefined "cz" should not match "a*!(z)" - undefined "cz" should not match "a*(z)" - undefined "cz" should not match "a**(z)" - undefined "cz" should not match "a*@(z)" - undefined "cz" should not match "a+(z)" - undefined "cz" should not match "a?(z)" - undefined "cz" should not match "a@(z)" - undefined "d.a.d" should not match "!(*.[a-b]*)" - undefined "d.a.d" should match "!(*[a-b].[a-b]*)" - undefined "d.a.d" should not match "!*.(a|b)*" - undefined "d.a.d" should match "!*.*(a|b)" - undefined "d.a.d" should not match "!*.{a,b}*" - undefined "d.a.d" should match "*.!(a)" - undefined "d.a.d" should match "*.+(b|d)" - undefined "d.d" should match "!(*.a|*.b|*.c)" - undefined "d.d" should match "*!(.a|.b|.c)" - undefined "d.d" should match "*.!(a|b|c)" - undefined "d.d" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "d.js.d" should match "!(*.js)" - undefined "d.js.d" should match "*!(.js)" - undefined "d.js.d" should match "*.!(js)" - undefined "dd.aa.d" should not match "(b|a).(a)" - undefined "dd.aa.d" should not match "@(b|a).@(a)" - undefined "def" should not match "()ef" - undefined "e.e" should match "!(*.a|*.b|*.c)" - undefined "e.e" should match "*!(.a|.b|.c)" - undefined "e.e" should match "*.!(a|b|c)" - undefined "e.e" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "ef" should match "()ef" - undefined "effgz" should match "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" - undefined "efgz" should match "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" - undefined "egz" should match "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" - undefined "egz" should not match "@(b+(c)d|e+(f)g?|?(h)i@(j|k))" - undefined "egzefffgzbcdij" should match "*(b+(c)d|e*(f)g?|?(h)i@(j|k))" - undefined "f" should not match "!(f!(o))" - undefined "f" should match "!(f(o))" - undefined "f" should not match "!(f)" - undefined "f" should not match "*(!(f))" - undefined "f" should not match "+(!(f))" - undefined "f.a" should not match "!(*.a|*.b|*.c)" - undefined "f.a" should match "*!(.a|.b|.c)" - undefined "f.a" should not match "*.!(a|b|c)" - undefined "f.f" should match "!(*.a|*.b|*.c)" - undefined "f.f" should match "*!(.a|.b|.c)" - undefined "f.f" should match "*.!(a|b|c)" - undefined "f.f" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "fa" should not match "!(f!(o))" - undefined "fa" should match "!(f(o))" - undefined "fb" should not match "!(f!(o))" - undefined "fb" should match "!(f(o))" - undefined "fff" should match "!(f)" - undefined "fff" should match "*(!(f))" - undefined "fff" should match "+(!(f))" - undefined "fffooofoooooffoofffooofff" should match "*(*(f)*(o))" - undefined "ffo" should match "*(f*(o))" - undefined "file.C" should not match "*.c?(c)" - undefined "file.c" should match "*.c?(c)" - undefined "file.cc" should match "*.c?(c)" - undefined "file.ccc" should not match "*.c?(c)" - undefined "fo" should match "!(f!(o))" - undefined "fo" should not match "!(f(o))" - undefined "fofo" should match "*(f*(o))" - undefined "fofoofoofofoo" should match "*(fo|foo)" - undefined "fofoofoofofoo" should match "*(fo|foo)" - undefined "foo" should match "!(!(foo))" - undefined "foo" should match "!(f)" - undefined "foo" should not match "!(foo)" - undefined "foo" should not match "!(foo)*" - undefined "foo" should not match "!(foo)*" - undefined "foo" should not match "!(foo)+" - undefined "foo" should not match "!(foo)b*" - undefined "foo" should match "!(x)" - undefined "foo" should match "!(x)*" - undefined "foo" should match "*" - undefined "foo" should match "*(!(f))" - undefined "foo" should not match "*(!(foo))" - undefined "foo" should not match "*(@(a))a@(c)" - undefined "foo" should match "*(@(foo))" - undefined "foo" should not match "*(a|b\[)" - undefined "foo" should match "*(a|b\[)|f*" - undefined "foo" should match "@(*(a|b\[)|f*)" - undefined "foo" should not match "*/*/*" - undefined "foo" should not match "*f" - undefined "foo" should match "*foo*" - undefined "foo" should match "+(!(f))" - undefined "foo" should not match "??" - undefined "foo" should match "???" - undefined "foo" should not match "bar" - undefined "foo" should match "f*" - undefined "foo" should not match "fo" - undefined "foo" should match "foo" - undefined "foo" should match "{*(a|b\[),f*}" - undefined "foo*" should match "foo\*" - undefined "foo*bar" should match "foo\*bar" - undefined "foo.js" should not match "!(foo).js" - undefined "foo.js.js" should match "*.!(js)" - undefined "foo.js.js" should not match "*.!(js)*" - undefined "foo.js.js" should not match "*.!(js)*.!(js)" - undefined "foo.js.js" should not match "*.!(js)+" - undefined "foo.txt" should match "**/!(bar).txt" - undefined "foo/bar" should not match "*/*/*" - undefined "foo/bar" should match "foo/!(foo)" - undefined "foo/bar" should match "foo/*" - undefined "foo/bar" should match "foo/bar" - undefined "foo/bar" should not match "foo?bar" - undefined "foo/bar" should match "foo[/]bar" - undefined "foo/bar/baz.jsx" should match "foo/bar/**/*.+(js|jsx)" - undefined "foo/bar/baz.jsx" should match "foo/bar/*.+(js|jsx)" - undefined "foo/bb/aa/rr" should match "**/**/**" - undefined "foo/bb/aa/rr" should match "*/*/*" - undefined "foo/bba/arr" should match "*/*/*" - undefined "foo/bba/arr" should match "foo*" - undefined "foo/bba/arr" should match "foo**" - undefined "foo/bba/arr" should match "foo/*" - undefined "foo/bba/arr" should match "foo/**" - undefined "foo/bba/arr" should match "foo/**arr" - undefined "foo/bba/arr" should not match "foo/**z" - undefined "foo/bba/arr" should match "foo/*arr" - undefined "foo/bba/arr" should not match "foo/*z" - undefined "foob" should not match "!(foo)b*" - undefined "foob" should not match "(foo)bb" - undefined "foobar" should match "!(foo)" - undefined "foobar" should not match "!(foo)*" - undefined "foobar" should not match "!(foo)*" - undefined "foobar" should not match "!(foo)b*" - undefined "foobar" should match "*(!(foo))" - undefined "foobar" should match "*ob*a*r*" - undefined "foobar" should match "foo\*bar" - undefined "foobb" should not match "!(foo)b*" - undefined "foobb" should match "(foo)bb" - undefined "(foo)bb" should match "\(foo\)bb" - undefined "foofoofo" should match "@(foo|f|fo)*(f|of+(o))" - undefined "foofoofo" should match "@(foo|f|fo)*(f|of+(o))" - undefined "fooofoofofooo" should match "*(f*(o))" - undefined "foooofo" should match "*(f*(o))" - undefined "foooofof" should match "*(f*(o))" - undefined "foooofof" should not match "*(f+(o))" - undefined "foooofofx" should not match "*(f*(o))" - undefined "foooxfooxfoxfooox" should match "*(f*(o)x)" - undefined "foooxfooxfxfooox" should match "*(f*(o)x)" - undefined "foooxfooxofoxfooox" should not match "*(f*(o)x)" - undefined "foot" should match "@(!(z*)|*x)" - undefined "foox" should match "@(!(z*)|*x)" - undefined "fz" should not match "*(z)" - undefined "fz" should not match "+(z)" - undefined "fz" should not match "?(z)" - undefined "moo.cow" should not match "!(moo).!(cow)" - undefined "moo.cow" should not match "!(*).!(*)" - undefined "moo.cow" should not match "!(*.*).!(*.*)" - undefined "mad.moo.cow" should not match "!(*.*).!(*.*)" - undefined "mad.moo.cow" should not match ".!(*.*)" - undefined "Makefile" should match "!(*.c|*.h|Makefile.in|config*|README)" - undefined "Makefile.in" should not match "!(*.c|*.h|Makefile.in|config*|README)" - undefined "moo" should match "!(*.*)" - undefined "moo" should not match "!(*.*)." - undefined "moo" should not match ".!(*.*)" - undefined "moo.cow" should not match "!(*.*)" - undefined "moo.cow" should not match "!(*.*)." - undefined "moo.cow" should not match ".!(*.*)" - undefined "mucca.pazza" should not match "mu!(*(c))?.pa!(*(z))?" - undefined "ofoofo" should match "*(of+(o))" - undefined "ofoofo" should match "*(of+(o)|f)" - undefined "ofooofoofofooo" should not match "*(f*(o))" - undefined "ofoooxoofxo" should match "*(*(of*(o)x)o)" - undefined "ofoooxoofxoofoooxoofxo" should match "*(*(of*(o)x)o)" - undefined "ofoooxoofxoofoooxoofxofo" should not match "*(*(of*(o)x)o)" - undefined "ofoooxoofxoofoooxoofxoo" should match "*(*(of*(o)x)o)" - undefined "ofoooxoofxoofoooxoofxooofxofxo" should match "*(*(of*(o)x)o)" - undefined "ofxoofxo" should match "*(*(of*(o)x)o)" - undefined "oofooofo" should match "*(of|oof+(o))" - undefined "ooo" should match "!(f)" - undefined "ooo" should match "*(!(f))" - undefined "ooo" should match "+(!(f))" - undefined "oxfoxfox" should not match "*(oxf+(ox))" - undefined "oxfoxoxfox" should match "*(oxf+(ox))" - undefined "para" should match "para*([0-9])" - undefined "para" should not match "para+([0-9])" - undefined "para.38" should match "para!(*.[00-09])" - undefined "para.graph" should match "para!(*.[0-9])" - undefined "para13829383746592" should match "para*([0-9])" - undefined "para381" should not match "para?([345]|99)1" - undefined "para39" should match "para!(*.[0-9])" - undefined "para987346523" should match "para+([0-9])" - undefined "para991" should match "para?([345]|99)1" - undefined "paragraph" should match "para!(*.[0-9])" - undefined "paragraph" should not match "para*([0-9])" - undefined "paragraph" should match "para@(chute|graph)" - undefined "paramour" should not match "para@(chute|graph)" - undefined "parse.y" should match "!(*.c|*.h|Makefile.in|config*|README)" - undefined "shell.c" should not match "!(*.c|*.h|Makefile.in|config*|README)" - undefined "VMS.FILE;" should not match "*\;[1-9]*([0-9])" - undefined "VMS.FILE;0" should not match "*\;[1-9]*([0-9])" - undefined "VMS.FILE;9" should match "*\;[1-9]*([0-9])" - undefined "VMS.FILE;1" should match "*\;[1-9]*([0-9])" - undefined "VMS.FILE;1" should match "*;[1-9]*([0-9])" - undefined "VMS.FILE;139" should match "*\;[1-9]*([0-9])" - undefined "VMS.FILE;1N" should not match "*\;[1-9]*([0-9])" - undefined "xfoooofof" should not match "*(f*(o))" - undefined "XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1" should match "XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*" - undefined "XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1" should not match "XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*" - undefined "z" should match "*(z)" - undefined "z" should match "+(z)" - undefined "z" should match "?(z)" - undefined "zf" should not match "*(z)" - undefined "zf" should not match "+(z)" - undefined "zf" should not match "?(z)" - undefined "zoot" should not match "@(!(z*)|*x)" - undefined "zoox" should match "@(!(z*)|*x)" - undefined "zz" should not match "(a+|b)*" - - extglobs (minimatch) - undefined should not match empty string with "*(0|1|3|5|7|9)" - undefined "*(a|b[)" should not match "*(a|b\[)" - undefined "*(a|b[)" should not match "\*\(a|b\[\)" - undefined "***" should match "\*\*\*" - undefined "-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1" should not match "-*-*-*-*-*-*-12-*-*-*-m-*-*-*" - undefined "-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1" should match "-*-*-*-*-*-*-12-*-*-*-m-*-*-*" - undefined "-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1" should not match "-*-*-*-*-*-*-12-*-*-*-m-*-*-*" - undefined "/dev/udp/129.22.8.102/45" should not match "/dev\/@(tcp|udp)\/*\/*" - undefined "/x/y/z" should match "/x/y/z" - undefined "0377" should match "+([0-7])" - undefined "07" should match "+([0-7])" - undefined "09" should not match "+([0-7])" - undefined "1" should match "0|[1-9]*([0-9])" - undefined "12" should match "0|[1-9]*([0-9])" - undefined "123abc" should not match "(a+|b)*" - undefined "123abc" should not match "(a+|b)+" - undefined "123abc" should match "*?(a)bc" - undefined "123abc" should not match "a(b*(foo|bar))d" - undefined "123abc" should not match "ab*(e|f)" - undefined "123abc" should not match "ab**" - undefined "123abc" should not match "ab**(e|f)" - undefined "123abc" should not match "ab**(e|f)g" - undefined "123abc" should not match "ab***ef" - undefined "123abc" should not match "ab*+(e|f)" - undefined "123abc" should not match "ab*d+(e|f)" - undefined "123abc" should not match "ab?*(e|f)" - undefined "12abc" should not match "0|[1-9]*([0-9])" - undefined "137577991" should match "*(0|1|3|5|7|9)" - undefined "2468" should not match "*(0|1|3|5|7|9)" - undefined "?a?b" should match "\??\?b" - undefined "\a\b\c" should not match "abc" - undefined "a" should match "!(*.a|*.b|*.c)" - undefined "a" should not match "!(a)" - undefined "a" should not match "!(a)*" - undefined "a" should match "(a)" - undefined "a" should not match "(b)" - undefined "a" should match "*(a)" - undefined "a" should match "+(a)" - undefined "a" should match "?" - undefined "a" should match "?(a|b)" - undefined "a" should not match "??" - undefined "a" should match "a!(b)*" - undefined "a" should match "a?(a|b)" - undefined "a" should match "a?(x)" - undefined "a" should not match "a??b" - undefined "a" should not match "b?(a|b)" - undefined "a((((b" should match "a(*b" - undefined "a((((b" should not match "a(b" - undefined "a((((b" should not match "a\(b" - undefined "a((b" should match "a(*b" - undefined "a((b" should not match "a(b" - undefined "a((b" should not match "a\(b" - undefined "a(b" should match "a(*b" - undefined "a(b" should match "a(b" - undefined "a(b" should match "a\(b" - undefined "a." should match "!(*.a|*.b|*.c)" - undefined "a." should match "*!(.a|.b|.c)" - undefined "a." should match "*.!(a)" - undefined "a." should match "*.!(a|b|c)" - undefined "a." should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "a." should not match "*.+(b|d)" - undefined "a.a" should not match "!(*.[a-b]*)" - undefined "a.a" should not match "!(*.a|*.b|*.c)" - undefined "a.a" should not match "!(*[a-b].[a-b]*)" - undefined "a.a" should not match "!*.(a|b)" - undefined "a.a" should not match "!*.(a|b)*" - undefined "a.a" should match "(a|d).(a|b)*" - undefined "a.a" should match "(b|a).(a)" - undefined "a.a" should match "*!(.a|.b|.c)" - undefined "a.a" should not match "*.!(a)" - undefined "a.a" should not match "*.!(a|b|c)" - undefined "a.a" should match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "a.a" should not match "*.+(b|d)" - undefined "a.a" should match "@(b|a).@(a)" - undefined "a.a.a" should not match "!(*.[a-b]*)" - undefined "a.a.a" should not match "!(*[a-b].[a-b]*)" - undefined "a.a.a" should not match "!*.(a|b)" - undefined "a.a.a" should not match "!*.(a|b)*" - undefined "a.a.a" should match "*.!(a)" - undefined "a.a.a" should not match "*.+(b|d)" - undefined "a.aa.a" should not match "(b|a).(a)" - undefined "a.aa.a" should not match "@(b|a).@(a)" - undefined "a.abcd" should match "!(*.a|*.b|*.c)" - undefined "a.abcd" should not match "!(*.a|*.b|*.c)*" - undefined "a.abcd" should match "*!(*.a|*.b|*.c)*" - undefined "a.abcd" should match "*!(.a|.b|.c)" - undefined "a.abcd" should match "*.!(a|b|c)" - undefined "a.abcd" should not match "*.!(a|b|c)*" - undefined "a.abcd" should match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "a.b" should not match "!(*.*)" - undefined "a.b" should not match "!(*.[a-b]*)" - undefined "a.b" should not match "!(*.a|*.b|*.c)" - undefined "a.b" should not match "!(*[a-b].[a-b]*)" - undefined "a.b" should not match "!*.(a|b)" - undefined "a.b" should not match "!*.(a|b)*" - undefined "a.b" should match "(a|d).(a|b)*" - undefined "a.b" should match "*!(.a|.b|.c)" - undefined "a.b" should match "*.!(a)" - undefined "a.b" should not match "*.!(a|b|c)" - undefined "a.b" should match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "a.b" should match "*.+(b|d)" - undefined "a.bb" should not match "!(*.[a-b]*)" - undefined "a.bb" should not match "!(*[a-b].[a-b]*)" - undefined "a.bb" should match "!*.(a|b)" - undefined "a.bb" should not match "!*.(a|b)*" - undefined "a.bb" should not match "!*.*(a|b)" - undefined "a.bb" should match "(a|d).(a|b)*" - undefined "a.bb" should not match "(b|a).(a)" - undefined "a.bb" should match "*.+(b|d)" - undefined "a.bb" should not match "@(b|a).@(a)" - undefined "a.c" should not match "!(*.a|*.b|*.c)" - undefined "a.c" should match "*!(.a|.b|.c)" - undefined "a.c" should not match "*.!(a|b|c)" - undefined "a.c" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "a.c.d" should match "!(*.a|*.b|*.c)" - undefined "a.c.d" should match "*!(.a|.b|.c)" - undefined "a.c.d" should match "*.!(a|b|c)" - undefined "a.c.d" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "a.ccc" should match "!(*.[a-b]*)" - undefined "a.ccc" should match "!(*[a-b].[a-b]*)" - undefined "a.ccc" should match "!*.(a|b)" - undefined "a.ccc" should match "!*.(a|b)*" - undefined "a.ccc" should not match "*.+(b|d)" - undefined "a.js" should not match "!(*.js)" - undefined "a.js" should match "*!(.js)" - undefined "a.js" should not match "*.!(js)" - undefined "a.js" should not match "a.!(js)" - undefined "a.js" should not match "a.!(js)*" - undefined "a.js.js" should not match "!(*.js)" - undefined "a.js.js" should match "*!(.js)" - undefined "a.js.js" should match "*.!(js)" - undefined "a.js.js" should match "*.*(js).js" - undefined "a.md" should match "!(*.js)" - undefined "a.md" should match "*!(.js)" - undefined "a.md" should match "*.!(js)" - undefined "a.md" should match "a.!(js)" - undefined "a.md" should match "a.!(js)*" - undefined "a.md.js" should not match "*.*(js).js" - undefined "a.txt" should match "a.!(js)" - undefined "a.txt" should match "a.!(js)*" - undefined "a/!(z)" should match "a/!(z)" - undefined "a/b" should match "a/!(z)" - undefined "a/b/c.txt" should not match "*/b/!(*).txt" - undefined "a/b/c.txt" should not match "*/b/!(c).txt" - undefined "a/b/c.txt" should match "*/b/!(cc).txt" - undefined "a/b/cc.txt" should not match "*/b/!(*).txt" - undefined "a/b/cc.txt" should not match "*/b/!(c).txt" - undefined "a/b/cc.txt" should not match "*/b/!(cc).txt" - undefined "a/dir/foo.txt" should match "*/dir/**/!(bar).txt" - undefined "a/z" should not match "a/!(z)" - undefined "a\(b" should not match "a(*b" - undefined "a\(b" should not match "a(b" - undefined "a\z" should match "a\z" - undefined "a\z" should match "a\z" - undefined "a\b" should match "a/b" - undefined "a\z" should match "a\z" - undefined "a\z" should not match "a\z" - undefined "aa" should not match "!(a!(b))" - undefined "aa" should match "!(a)" - undefined "aa" should not match "!(a)*" - undefined "aa" should not match "?" - undefined "aa" should not match "@(a)b" - undefined "aa" should match "a!(b)*" - undefined "aa" should not match "a??b" - undefined "aa.aa" should not match "(b|a).(a)" - undefined "aa.aa" should not match "@(b|a).@(a)" - undefined "aaa" should not match "!(a)*" - undefined "aaa" should match "a!(b)*" - undefined "aaaaaaabababab" should match "*ab" - undefined "aaac" should match "*(@(a))a@(c)" - undefined "aaaz" should match "[a*(]*z" - undefined "aab" should not match "!(a)*" - undefined "aab" should not match "?" - undefined "aab" should not match "??" - undefined "aab" should not match "@(c)b" - undefined "aab" should match "a!(b)*" - undefined "aab" should not match "a??b" - undefined "aac" should match "*(@(a))a@(c)" - undefined "aac" should not match "*(@(a))b@(c)" - undefined "aax" should not match "a!(a*|b)" - undefined "aax" should match "a!(x*|b)" - undefined "aax" should match "a?(a*|b)" - undefined "aaz" should match "[a*(]*z" - undefined "ab" should match "!(*.*)" - undefined "ab" should match "!(a!(b))" - undefined "ab" should not match "!(a)*" - undefined "ab" should match "(a+|b)*" - undefined "ab" should match "(a+|b)+" - undefined "ab" should not match "*?(a)bc" - undefined "ab" should not match "a!(*(b|B))" - undefined "ab" should not match "a!(@(b|B))" - undefined "aB" should not match "a!(@(b|B))" - undefined "ab" should not match "a!(b)*" - undefined "ab" should not match "a(*b" - undefined "ab" should not match "a(b" - undefined "ab" should not match "a(b*(foo|bar))d" - undefined "ab" should not match "a/b" - undefined "ab" should not match "a\(b" - undefined "ab" should match "ab*(e|f)" - undefined "ab" should match "ab**" - undefined "ab" should match "ab**(e|f)" - undefined "ab" should not match "ab**(e|f)g" - undefined "ab" should not match "ab***ef" - undefined "ab" should not match "ab*+(e|f)" - undefined "ab" should not match "ab*d+(e|f)" - undefined "ab" should not match "ab?*(e|f)" - undefined "ab/cXd/efXg/hi" should match "**/*X*/**/*i" - undefined "ab/cXd/efXg/hi" should match "*/*X*/*/*i" - undefined "ab/cXd/efXg/hi" should not match "*X*i" - undefined "ab/cXd/efXg/hi" should not match "*Xg*i" - undefined "ab]" should match "a!(@(b|B))" - undefined "abab" should match "(a+|b)*" - undefined "abab" should match "(a+|b)+" - undefined "abab" should not match "*?(a)bc" - undefined "abab" should not match "a(b*(foo|bar))d" - undefined "abab" should not match "ab*(e|f)" - undefined "abab" should match "ab**" - undefined "abab" should match "ab**(e|f)" - undefined "abab" should not match "ab**(e|f)g" - undefined "abab" should not match "ab***ef" - undefined "abab" should not match "ab*+(e|f)" - undefined "abab" should not match "ab*d+(e|f)" - undefined "abab" should not match "ab?*(e|f)" - undefined "abb" should match "!(*.*)" - undefined "abb" should not match "!(a)*" - undefined "abb" should not match "a!(b)*" - undefined "abbcd" should match "@(ab|a*(b))*(c)d" - undefined "abc" should not match "\a\b\c" - undefined "aBc" should match "a!(@(b|B))" - undefined "abcd" should match "?@(a|b)*@(c)d" - undefined "abcd" should match "@(ab|a*@(b))*(c)d" - undefined "abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt" should match "**/*a*b*g*n*t" - undefined "abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz" should not match "**/*a*b*g*n*t" - undefined "abcdef" should match "(a+|b)*" - undefined "abcdef" should not match "(a+|b)+" - undefined "abcdef" should not match "*?(a)bc" - undefined "abcdef" should not match "a(b*(foo|bar))d" - undefined "abcdef" should not match "ab*(e|f)" - undefined "abcdef" should match "ab**" - undefined "abcdef" should match "ab**(e|f)" - undefined "abcdef" should not match "ab**(e|f)g" - undefined "abcdef" should match "ab***ef" - undefined "abcdef" should match "ab*+(e|f)" - undefined "abcdef" should match "ab*d+(e|f)" - undefined "abcdef" should not match "ab?*(e|f)" - undefined "abcfef" should match "(a+|b)*" - undefined "abcfef" should not match "(a+|b)+" - undefined "abcfef" should not match "*?(a)bc" - undefined "abcfef" should not match "a(b*(foo|bar))d" - undefined "abcfef" should not match "ab*(e|f)" - undefined "abcfef" should match "ab**" - undefined "abcfef" should match "ab**(e|f)" - undefined "abcfef" should not match "ab**(e|f)g" - undefined "abcfef" should match "ab***ef" - undefined "abcfef" should match "ab*+(e|f)" - undefined "abcfef" should not match "ab*d+(e|f)" - undefined "abcfef" should match "ab?*(e|f)" - undefined "abcfefg" should match "(a+|b)*" - undefined "abcfefg" should not match "(a+|b)+" - undefined "abcfefg" should not match "*?(a)bc" - undefined "abcfefg" should not match "a(b*(foo|bar))d" - undefined "abcfefg" should not match "ab*(e|f)" - undefined "abcfefg" should match "ab**" - undefined "abcfefg" should match "ab**(e|f)" - undefined "abcfefg" should match "ab**(e|f)g" - undefined "abcfefg" should not match "ab***ef" - undefined "abcfefg" should not match "ab*+(e|f)" - undefined "abcfefg" should not match "ab*d+(e|f)" - undefined "abcfefg" should not match "ab?*(e|f)" - undefined "abcx" should match "!([[*])*" - undefined "abcx" should match "+(a|b\[)*" - undefined "abcx" should not match "[a*(]*z" - undefined "abcXdefXghi" should match "*X*i" - undefined "abcz" should match "!([[*])*" - undefined "abcz" should match "+(a|b\[)*" - undefined "abcz" should match "[a*(]*z" - undefined "abd" should match "(a+|b)*" - undefined "abd" should not match "(a+|b)+" - undefined "abd" should not match "*?(a)bc" - undefined "abd" should match "a!(*(b|B))" - undefined "abd" should match "a!(@(b|B))" - undefined "abd" should not match "a!(@(b|B))d" - undefined "abd" should match "a(b*(foo|bar))d" - undefined "abd" should match "a+(b|c)d" - undefined "abd" should match "a[b*(foo|bar)]d" - undefined "abd" should not match "ab*(e|f)" - undefined "abd" should match "ab**" - undefined "abd" should match "ab**(e|f)" - undefined "abd" should not match "ab**(e|f)g" - undefined "abd" should not match "ab***ef" - undefined "abd" should not match "ab*+(e|f)" - undefined "abd" should not match "ab*d+(e|f)" - undefined "abd" should match "ab?*(e|f)" - undefined "abef" should match "(a+|b)*" - undefined "abef" should not match "(a+|b)+" - undefined "abef" should not match "*(a+|b)" - undefined "abef" should not match "*?(a)bc" - undefined "abef" should not match "a(b*(foo|bar))d" - undefined "abef" should match "ab*(e|f)" - undefined "abef" should match "ab**" - undefined "abef" should match "ab**(e|f)" - undefined "abef" should not match "ab**(e|f)g" - undefined "abef" should match "ab***ef" - undefined "abef" should match "ab*+(e|f)" - undefined "abef" should not match "ab*d+(e|f)" - undefined "abef" should match "ab?*(e|f)" - undefined "abz" should not match "a!(*)" - undefined "abz" should match "a!(z)" - undefined "abz" should match "a*!(z)" - undefined "abz" should not match "a*(z)" - undefined "abz" should match "a**(z)" - undefined "abz" should match "a*@(z)" - undefined "abz" should not match "a+(z)" - undefined "abz" should not match "a?(z)" - undefined "abz" should not match "a@(z)" - undefined "ac" should not match "!(a)*" - undefined "ac" should match "*(@(a))a@(c)" - undefined "ac" should match "a!(*(b|B))" - undefined "ac" should match "a!(@(b|B))" - undefined "ac" should match "a!(b)*" - undefined "accdef" should match "(a+|b)*" - undefined "accdef" should not match "(a+|b)+" - undefined "accdef" should not match "*?(a)bc" - undefined "accdef" should not match "a(b*(foo|bar))d" - undefined "accdef" should not match "ab*(e|f)" - undefined "accdef" should not match "ab**" - undefined "accdef" should not match "ab**(e|f)" - undefined "accdef" should not match "ab**(e|f)g" - undefined "accdef" should not match "ab***ef" - undefined "accdef" should not match "ab*+(e|f)" - undefined "accdef" should not match "ab*d+(e|f)" - undefined "accdef" should not match "ab?*(e|f)" - undefined "acd" should match "(a+|b)*" - undefined "acd" should not match "(a+|b)+" - undefined "acd" should not match "*?(a)bc" - undefined "acd" should match "@(ab|a*(b))*(c)d" - undefined "acd" should match "a!(*(b|B))" - undefined "acd" should match "a!(@(b|B))" - undefined "acd" should match "a!(@(b|B))d" - undefined "acd" should not match "a(b*(foo|bar))d" - undefined "acd" should match "a+(b|c)d" - undefined "acd" should not match "a[b*(foo|bar)]d" - undefined "acd" should not match "ab*(e|f)" - undefined "acd" should not match "ab**" - undefined "acd" should not match "ab**(e|f)" - undefined "acd" should not match "ab**(e|f)g" - undefined "acd" should not match "ab***ef" - undefined "acd" should not match "ab*+(e|f)" - undefined "acd" should not match "ab*d+(e|f)" - undefined "acd" should not match "ab?*(e|f)" - undefined "ax" should match "?(a*|b)" - undefined "ax" should not match "a?(b*)" - undefined "axz" should not match "a+(z)" - undefined "az" should not match "a!(*)" - undefined "az" should not match "a!(z)" - undefined "az" should match "a*!(z)" - undefined "az" should match "a*(z)" - undefined "az" should match "a**(z)" - undefined "az" should match "a*@(z)" - undefined "az" should match "a+(z)" - undefined "az" should match "a?(z)" - undefined "az" should match "a@(z)" - undefined "az" should not match "a\z" - undefined "az" should not match "a\z" - undefined "b" should match "!(a)*" - undefined "b" should match "(a+|b)*" - undefined "b" should not match "a!(b)*" - undefined "b.a" should match "(b|a).(a)" - undefined "b.a" should match "@(b|a).@(a)" - undefined "b/a" should not match "!(b/a)" - undefined "b/b" should match "!(b/a)" - undefined "b/c" should match "!(b/a)" - undefined "b/c" should not match "b/!(c)" - undefined "b/c" should match "b/!(cc)" - undefined "b/c.txt" should not match "b/!(c).txt" - undefined "b/c.txt" should match "b/!(cc).txt" - undefined "b/cc" should match "b/!(c)" - undefined "b/cc" should not match "b/!(cc)" - undefined "b/cc.txt" should not match "b/!(c).txt" - undefined "b/cc.txt" should not match "b/!(cc).txt" - undefined "b/ccc" should match "b/!(c)" - undefined "ba" should match "!(a!(b))" - undefined "ba" should match "b?(a|b)" - undefined "baaac" should not match "*(@(a))a@(c)" - undefined "bar" should match "!(foo)" - undefined "bar" should match "!(foo)*" - undefined "bar" should match "!(foo)b*" - undefined "bar" should match "*(!(foo))" - undefined "baz" should match "!(foo)*" - undefined "baz" should match "!(foo)b*" - undefined "baz" should match "*(!(foo))" - undefined "bb" should match "!(a!(b))" - undefined "bb" should match "!(a)*" - undefined "bb" should not match "a!(b)*" - undefined "bb" should not match "a?(a|b)" - undefined "bbc" should match "!([[*])*" - undefined "bbc" should not match "+(a|b\[)*" - undefined "bbc" should not match "[a*(]*z" - undefined "bz" should not match "a+(z)" - undefined "c" should not match "*(@(a))a@(c)" - undefined "c.a" should not match "!(*.[a-b]*)" - undefined "c.a" should match "!(*[a-b].[a-b]*)" - undefined "c.a" should not match "!*.(a|b)" - undefined "c.a" should not match "!*.(a|b)*" - undefined "c.a" should not match "(b|a).(a)" - undefined "c.a" should not match "*.!(a)" - undefined "c.a" should not match "*.+(b|d)" - undefined "c.a" should not match "@(b|a).@(a)" - undefined "c.c" should not match "!(*.a|*.b|*.c)" - undefined "c.c" should match "*!(.a|.b|.c)" - undefined "c.c" should not match "*.!(a|b|c)" - undefined "c.c" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "c.ccc" should match "!(*.[a-b]*)" - undefined "c.ccc" should match "!(*[a-b].[a-b]*)" - undefined "c.js" should not match "!(*.js)" - undefined "c.js" should match "*!(.js)" - undefined "c.js" should not match "*.!(js)" - undefined "c/a/v" should match "c/!(z)/v" - undefined "c/a/v" should not match "c/*(z)/v" - undefined "c/a/v" should not match "c/+(z)/v" - undefined "c/a/v" should not match "c/@(z)/v" - undefined "c/z/v" should not match "*(z)" - undefined "c/z/v" should not match "+(z)" - undefined "c/z/v" should not match "?(z)" - undefined "c/z/v" should not match "c/!(z)/v" - undefined "c/z/v" should match "c/*(z)/v" - undefined "c/z/v" should match "c/+(z)/v" - undefined "c/z/v" should match "c/@(z)/v" - undefined "c/z/v" should match "c/z/v" - undefined "cc.a" should not match "(b|a).(a)" - undefined "cc.a" should not match "@(b|a).@(a)" - undefined "ccc" should match "!(a)*" - undefined "ccc" should not match "a!(b)*" - undefined "cow" should match "!(*.*)" - undefined "cow" should not match "!(*.*)." - undefined "cow" should not match ".!(*.*)" - undefined "cz" should not match "a!(*)" - undefined "cz" should not match "a!(z)" - undefined "cz" should not match "a*!(z)" - undefined "cz" should not match "a*(z)" - undefined "cz" should not match "a**(z)" - undefined "cz" should not match "a*@(z)" - undefined "cz" should not match "a+(z)" - undefined "cz" should not match "a?(z)" - undefined "cz" should not match "a@(z)" - undefined "d.a.d" should not match "!(*.[a-b]*)" - undefined "d.a.d" should match "!(*[a-b].[a-b]*)" - undefined "d.a.d" should not match "!*.(a|b)*" - undefined "d.a.d" should match "!*.*(a|b)" - undefined "d.a.d" should not match "!*.{a,b}*" - undefined "d.a.d" should match "*.!(a)" - undefined "d.a.d" should match "*.+(b|d)" - undefined "d.d" should match "!(*.a|*.b|*.c)" - undefined "d.d" should match "*!(.a|.b|.c)" - undefined "d.d" should match "*.!(a|b|c)" - undefined "d.d" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "d.js.d" should match "!(*.js)" - undefined "d.js.d" should match "*!(.js)" - undefined "d.js.d" should match "*.!(js)" - undefined "dd.aa.d" should not match "(b|a).(a)" - undefined "dd.aa.d" should not match "@(b|a).@(a)" - undefined "def" should not match "()ef" - undefined "e.e" should match "!(*.a|*.b|*.c)" - undefined "e.e" should match "*!(.a|.b|.c)" - undefined "e.e" should match "*.!(a|b|c)" - undefined "e.e" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "ef" should match "()ef" - undefined "effgz" should match "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" - undefined "efgz" should match "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" - undefined "egz" should match "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" - undefined "egz" should not match "@(b+(c)d|e+(f)g?|?(h)i@(j|k))" - undefined "egzefffgzbcdij" should match "*(b+(c)d|e*(f)g?|?(h)i@(j|k))" - undefined "f" should not match "!(f!(o))" - undefined "f" should match "!(f(o))" - undefined "f" should not match "!(f)" - undefined "f" should not match "*(!(f))" - undefined "f" should not match "+(!(f))" - undefined "f.a" should not match "!(*.a|*.b|*.c)" - undefined "f.a" should match "*!(.a|.b|.c)" - undefined "f.a" should not match "*.!(a|b|c)" - undefined "f.f" should match "!(*.a|*.b|*.c)" - undefined "f.f" should match "*!(.a|.b|.c)" - undefined "f.f" should match "*.!(a|b|c)" - undefined "f.f" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" - undefined "fa" should not match "!(f!(o))" - undefined "fa" should match "!(f(o))" - undefined "fb" should not match "!(f!(o))" - undefined "fb" should match "!(f(o))" - undefined "fff" should match "!(f)" - undefined "fff" should match "*(!(f))" - undefined "fff" should match "+(!(f))" - undefined "fffooofoooooffoofffooofff" should match "*(*(f)*(o))" - undefined "ffo" should match "*(f*(o))" - undefined "file.C" should not match "*.c?(c)" - undefined "file.c" should match "*.c?(c)" - undefined "file.cc" should match "*.c?(c)" - undefined "file.ccc" should not match "*.c?(c)" - undefined "fo" should match "!(f!(o))" - undefined "fo" should not match "!(f(o))" - undefined "fofo" should match "*(f*(o))" - undefined "fofoofoofofoo" should match "*(fo|foo)" - undefined "fofoofoofofoo" should match "*(fo|foo)" - undefined "foo" should match "!(!(foo))" - undefined "foo" should match "!(f)" - undefined "foo" should not match "!(foo)" - undefined "foo" should not match "!(foo)*" - undefined "foo" should not match "!(foo)*" - undefined "foo" should not match "!(foo)+" - undefined "foo" should not match "!(foo)b*" - undefined "foo" should match "!(x)" - undefined "foo" should match "!(x)*" - undefined "foo" should match "*" - undefined "foo" should match "*(!(f))" - undefined "foo" should not match "*(!(foo))" - undefined "foo" should not match "*(@(a))a@(c)" - undefined "foo" should match "*(@(foo))" - undefined "foo" should not match "*(a|b\[)" - undefined "foo" should match "*(a|b\[)|f*" - undefined "foo" should match "@(*(a|b\[)|f*)" - undefined "foo" should not match "*/*/*" - undefined "foo" should not match "*f" - undefined "foo" should match "*foo*" - undefined "foo" should match "+(!(f))" - undefined "foo" should not match "??" - undefined "foo" should match "???" - undefined "foo" should not match "bar" - undefined "foo" should match "f*" - undefined "foo" should not match "fo" - undefined "foo" should match "foo" - undefined "foo" should match "{*(a|b\[),f*}" - undefined "foo*" should match "foo\*" - undefined "foo*bar" should match "foo\*bar" - undefined "foo.js" should not match "!(foo).js" - undefined "foo.js.js" should match "*.!(js)" - undefined "foo.js.js" should not match "*.!(js)*" - undefined "foo.js.js" should not match "*.!(js)*.!(js)" - undefined "foo.js.js" should not match "*.!(js)+" - undefined "foo.txt" should match "**/!(bar).txt" - undefined "foo/bar" should not match "*/*/*" - undefined "foo/bar" should match "foo/!(foo)" - undefined "foo/bar" should match "foo/*" - undefined "foo/bar" should match "foo/bar" - undefined "foo/bar" should not match "foo?bar" - undefined "foo/bar" should match "foo[/]bar" - undefined "foo/bar/baz.jsx" should match "foo/bar/**/*.+(js|jsx)" - undefined "foo/bar/baz.jsx" should match "foo/bar/*.+(js|jsx)" - undefined "foo/bb/aa/rr" should match "**/**/**" - undefined "foo/bb/aa/rr" should not match "*/*/*" - undefined "foo/bba/arr" should match "*/*/*" - undefined "foo/bba/arr" should not match "foo*" - undefined "foo/bba/arr" should not match "foo**" - undefined "foo/bba/arr" should not match "foo/*" - undefined "foo/bba/arr" should match "foo/**" - undefined "foo/bba/arr" should not match "foo/**arr" - undefined "foo/bba/arr" should not match "foo/**z" - undefined "foo/bba/arr" should not match "foo/*arr" - undefined "foo/bba/arr" should not match "foo/*z" - undefined "foob" should not match "!(foo)b*" - undefined "foob" should not match "(foo)bb" - undefined "foobar" should match "!(foo)" - undefined "foobar" should not match "!(foo)*" - undefined "foobar" should not match "!(foo)*" - undefined "foobar" should not match "!(foo)b*" - undefined "foobar" should match "*(!(foo))" - undefined "foobar" should match "*ob*a*r*" - undefined "foobar" should not match "foo\*bar" - undefined "foobb" should not match "!(foo)b*" - undefined "foobb" should match "(foo)bb" - undefined "(foo)bb" should match "\(foo\)bb" - undefined "foofoofo" should match "@(foo|f|fo)*(f|of+(o))" - undefined "foofoofo" should match "@(foo|f|fo)*(f|of+(o))" - undefined "fooofoofofooo" should match "*(f*(o))" - undefined "foooofo" should match "*(f*(o))" - undefined "foooofof" should match "*(f*(o))" - undefined "foooofof" should not match "*(f+(o))" - undefined "foooofofx" should not match "*(f*(o))" - undefined "foooxfooxfoxfooox" should match "*(f*(o)x)" - undefined "foooxfooxfxfooox" should match "*(f*(o)x)" - undefined "foooxfooxofoxfooox" should not match "*(f*(o)x)" - undefined "foot" should match "@(!(z*)|*x)" - undefined "foox" should match "@(!(z*)|*x)" - undefined "fz" should not match "*(z)" - undefined "fz" should not match "+(z)" - undefined "fz" should not match "?(z)" - undefined "moo.cow" should not match "!(moo).!(cow)" - undefined "moo.cow" should not match "!(*).!(*)" - undefined "moo.cow" should not match "!(*.*).!(*.*)" - undefined "mad.moo.cow" should not match "!(*.*).!(*.*)" - undefined "mad.moo.cow" should not match ".!(*.*)" - undefined "Makefile" should match "!(*.c|*.h|Makefile.in|config*|README)" - undefined "Makefile.in" should not match "!(*.c|*.h|Makefile.in|config*|README)" - undefined "moo" should match "!(*.*)" - undefined "moo" should not match "!(*.*)." - undefined "moo" should not match ".!(*.*)" - undefined "moo.cow" should not match "!(*.*)" - undefined "moo.cow" should not match "!(*.*)." - undefined "moo.cow" should not match ".!(*.*)" - undefined "mucca.pazza" should not match "mu!(*(c))?.pa!(*(z))?" - undefined "ofoofo" should match "*(of+(o))" - undefined "ofoofo" should match "*(of+(o)|f)" - undefined "ofooofoofofooo" should not match "*(f*(o))" - undefined "ofoooxoofxo" should match "*(*(of*(o)x)o)" - undefined "ofoooxoofxoofoooxoofxo" should match "*(*(of*(o)x)o)" - undefined "ofoooxoofxoofoooxoofxofo" should not match "*(*(of*(o)x)o)" - undefined "ofoooxoofxoofoooxoofxoo" should match "*(*(of*(o)x)o)" - undefined "ofoooxoofxoofoooxoofxooofxofxo" should match "*(*(of*(o)x)o)" - undefined "ofxoofxo" should match "*(*(of*(o)x)o)" - undefined "oofooofo" should match "*(of|oof+(o))" - undefined "ooo" should match "!(f)" - undefined "ooo" should match "*(!(f))" - undefined "ooo" should match "+(!(f))" - undefined "oxfoxfox" should not match "*(oxf+(ox))" - undefined "oxfoxoxfox" should match "*(oxf+(ox))" - undefined "para" should match "para*([0-9])" - undefined "para" should not match "para+([0-9])" - undefined "para.38" should match "para!(*.[00-09])" - undefined "para.graph" should match "para!(*.[0-9])" - undefined "para13829383746592" should match "para*([0-9])" - undefined "para381" should not match "para?([345]|99)1" - undefined "para39" should match "para!(*.[0-9])" - undefined "para987346523" should match "para+([0-9])" - undefined "para991" should match "para?([345]|99)1" - undefined "paragraph" should match "para!(*.[0-9])" - undefined "paragraph" should not match "para*([0-9])" - undefined "paragraph" should match "para@(chute|graph)" - undefined "paramour" should not match "para@(chute|graph)" - undefined "parse.y" should match "!(*.c|*.h|Makefile.in|config*|README)" - undefined "shell.c" should not match "!(*.c|*.h|Makefile.in|config*|README)" - undefined "VMS.FILE;" should not match "*\;[1-9]*([0-9])" - undefined "VMS.FILE;0" should not match "*\;[1-9]*([0-9])" - undefined "VMS.FILE;9" should match "*\;[1-9]*([0-9])" - undefined "VMS.FILE;1" should match "*\;[1-9]*([0-9])" - undefined "VMS.FILE;1" should match "*;[1-9]*([0-9])" - undefined "VMS.FILE;139" should match "*\;[1-9]*([0-9])" - undefined "VMS.FILE;1N" should not match "*\;[1-9]*([0-9])" - undefined "xfoooofof" should not match "*(f*(o))" - undefined "XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1" should match "XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*" - undefined "XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1" should not match "XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*" - undefined "z" should match "*(z)" - undefined "z" should match "+(z)" - undefined "z" should match "?(z)" - undefined "zf" should not match "*(z)" - undefined "zf" should not match "+(z)" - undefined "zf" should not match "?(z)" - undefined "zoot" should not match "@(!(z*)|*x)" - undefined "zoox" should match "@(!(z*)|*x)" - undefined "zz" should not match "(a+|b)*" - - extglobs - undefined should throw on imbalanced sets when `options.strictBrackets` is true - undefined should match extglobs ending with statechar - undefined should not choke on non-extglobs - undefined should work with file extensions - undefined should support !(...) - undefined should support logical-or inside negation !(...) extglobs - undefined should support multiple negation !(...) extglobs in one expression - undefined should support nested negation !(...) extglobs - undefined should support *(...) - undefined should support +(...) extglobs - undefined should support ?(...) extglobs - undefined should support @(...) extglobs - undefined should support qmark matching - undefined should match exactly one of the given pattern: - undefined should pass tests from rosenblatt's korn shell book - undefined tests derived from the pd-ksh test suite - undefined stuff from korn's book - undefined simple kleene star tests - undefined should support multiple extglobs: - undefined should correctly match empty parens - undefined should match escaped parens - undefined should match escaped backslashes - undefined should support regex characters - - extglobs from the bash spec - undefined should match negation extglobs (38ms) - undefined should backtrack in alternation matches - undefined should support exclusions - undefined valid numbers - undefined check extended globbing in pattern removal - undefined More tests derived from a bug report (in bash) concerning extended glob patterns following a * - undefined bug in all versions up to and including bash-2.05b - undefined should work with character classes - undefined should support POSIX character classes in extglobs - undefined should pass extglob2 tests - undefined should support backtracking in alternation matches - undefined should support exclusions - - issue-related tests - undefined micromatch issue #140 - undefined micromatch issue#15 - undefined micromatch issue#23 - undefined micromatch issue#24 - undefined micromatch issue#58 - only match nested dirs when `**` is the only thing in a segment - undefined micromatch issue#63 (dots) - undefined micromatch issue#79 - - handling of potential regex exploits - undefined should support long escape sequences - undefined should throw an error when the pattern is too long - undefined should allow max bytes to be customized - - micromatch - empty list - undefined should return an empty array - posix paths - undefined should return an array of matches - undefined should return an array of matches for a literal string - undefined should return an array of matches for an array of literal strings - undefined should support regex logical or - undefined should support regex ranges - undefined should support single globs (*) - undefined should support globstars (**) - undefined should work with file extensions - undefined should match literal brackets - windows paths - undefined should return an array of matches for a literal string - undefined should return an array of matches for an array of literal strings - undefined should support regex logical or - undefined should support regex ranges - undefined should support single globs (*) - undefined should support globstars (**) - undefined should work with file extensions - - basic tests - minimatch parity - - http://www.bashcookbook.com/bashinfo/source/bash-1.14.7/tests/glob-test - undefined 0: h - undefined 1: a* - undefined 2: X* - - allow null glob expansion - undefined 3: a - undefined 4: X* - - micromatch has same results as Bash. Minimatch does this differently - undefined 5: m - undefined 6: \* - undefined 7: \** - undefined 8: \*\* - undefined 9: b*/ - undefined 10: c* - undefined 11: ** - undefined 12: \.\./*/ - undefined 13: s/\..*// - - legendary larry crashes bashes - undefined 14: l - undefined 15: /^root:/{s/^[^:]*:[^:]*:([^:]*).*$/\1/ - undefined 16: /^root:/{s/^[^:]*:[^:]*:([^:]*).*$// - - character classes - undefined 17: c - undefined 18: [a-c]b* - undefined 19: [a-y]*[^c] - undefined 20: a*[^c] - undefined 21: undefined - undefined 22: a[X-]b - undefined 23: undefined - undefined 24: [^a-c]* - undefined 25: undefined - - trailing slashes - undefined 26: t - undefined 27: a*b/* - undefined 28: a*?/* - undefined 29: a\*b/* - undefined 30: a\*?/* - undefined 31: *\\!* - undefined 32: *\!* - undefined 33: *.\* - undefined 34: a[b]c - undefined 35: a[\\b]c - undefined 36: a?c - undefined 37: a\*c - - http://www.opensource.apple.com/source/bash/bash-23/bash/tests/glob-test - undefined 38: h - undefined 39: undefined - undefined 40: */man*/bash.* - undefined 41: man/man1/bash.1 - undefined 42: a***c - undefined 43: a*****?c - undefined 44: ?*****?? - undefined 45: *****?? - undefined 46: ?*****?c - undefined 47: ?***?****c - undefined 48: ?***?****? - undefined 49: ?***?**** - undefined 50: *******c - undefined 51: *******? - undefined 52: a*cd**?**??k - undefined 53: a**?**cd**?**??k - undefined 54: a**?**cd**?**??k*** - undefined 55: a**?**cd**?**??***k - undefined 56: a**?**cd**?**??***k** - undefined 57: a****c**?**??***** - undefined 58: [-abc] - undefined 59: [abc-] - undefined 60: [[] - undefined 61: [ - undefined 62: [* - - a right bracket shall lose its special meaning and represent itself in a bracket expression if it occurs first in the list. -- POSIX.2 2.8.3.2 - undefined 63: a - undefined 64: []] - undefined 65: []-] - undefined 66: [a-z] - undefined 67: ??**********?****? - undefined 68: ??**********?****c - undefined 69: ?************c****?**** - undefined 70: *c*?** - undefined 71: a*****c*?** - undefined 72: a********???******* - undefined 73: [] - undefined 74: [abc - - nocase tests - undefined 75: n - undefined 76: XYZ - undefined 77: ab* - undefined 78: [ia]?[ck] - - braces: onestar/twostar - undefined 79: b - undefined 80: {/*,*} - undefined 81: {/?,*} - - dots should not match unless requested - undefined 82: d - undefined 83: ** - undefined 84: undefined - undefined 85: a/*/b - undefined 86: a/*/b - undefined 87: a/.*/b - undefined 88: a/.*/b - undefined 89: ** - undefined 90: *(a/b) - undefined 91: *(a|{b),c)} - undefined 92: [!a* - undefined 93: undefined - undefined 94: *(a|{b,c}) - undefined 95: {a,*(b|c,d)} - undefined 96: {a,*(b|{c,d})} - undefined 97: *(a|{b|c,c}) - undefined 98: *(a|{b|c,c}) - undefined 99: a?b - undefined 100: a?b - - negation tests - undefined 101: n - undefined 102: undefined - undefined 103: !a* - undefined 104: !a* - undefined 105: a* - undefined 106: !\!a* - undefined 107: undefined - - https://github.com/isaacs/minimatch/issues/5 - undefined 108: h - undefined 109: undefined - undefined 110: **/.x/** - - https://github.com/isaacs/minimatch/issues/59 - undefined 111: h - undefined 112: [z-a] - undefined 113: a/[2015-03-10T00:23:08.647Z]/z - undefined 114: [a-0][a-Ā] - backslashes - undefined should match literal backslashes - minimatch issues (as of 12/7/2016) - undefined https://github.com/isaacs/minimatch/issues/29 - undefined https://github.com/isaacs/minimatch/issues/30 - undefined https://github.com/isaacs/minimatch/issues/50 - undefined https://github.com/isaacs/minimatch/issues/67 (should work consistently with `makeRe` and matcher functions) - undefined https://github.com/isaacs/minimatch/issues/75 - undefined https://github.com/isaacs/minimatch/issues/78 - undefined https://github.com/isaacs/minimatch/issues/82 - undefined https://github.com/isaacs/minimatch/issues/83 - - negation - posix paths - undefined should support negating with single * - undefined should support negation patterns - undefined should support negating with literal non-globs - undefined should negate files with extensions: - undefined should only treat leading exclamation as special - undefined should support negated globstars ("**") - undefined should negate dotfiles: - undefined should negate files in the immediate directory: - undefined should not give special meaning to non-leading exclamations - undefined should negate files in any directory: - windows paths - undefined should support negation patterns - - options - options.failglob (from Bash 4.3 tests) - undefined should throw an error when no matches are found: - options.ignore - undefined should filter out ignored patterns - options.matchBase - undefined should match the basename of file paths when `options.matchBase` is true - undefined should work with negation patterns - options.flags - undefined should be case-sensitive by default - undefined should not be case-sensitive when `i` is set on `options.flags` - options.nobrace - undefined should not expand braces when disabled - options.nocase - undefined should not be case-sensitive when `options.nocase` is true - undefined should not double-set `i` when both `nocase` and the `i` flag are set - options.noextglob - undefined should match literal parens when noextglob is true (issue #116) - undefined should not match extglobs when noextglob is true - options.nodupes - undefined should remove duplicate elements from the result array: - undefined should not remove duplicates - options.nonegate - undefined should support the `nonegate` option: - options.nonull - undefined should support the `nonull` option: - options.windows - undefined should windows file paths by default - undefined should windows absolute paths - undefined should strip leading `./` - options.dot - when `dot` or `dotfile` is NOT true: - undefined should not match dotfiles by default: - undefined should match dotfiles when a leading dot is defined in the path: - undefined should use negation patterns on dotfiles: - windows - undefined should windows file paths - undefined should windows absolute paths - - posix classes - posix bracket type conversion - undefined should create regex character classes from POSIX bracket expressions: - integration: posix classes with globs - undefined should work with globs - .isMatch - undefined should support POSIX.2 character classes - undefined should support multiple posix brackets in one character class - undefined should match word characters - undefined should match character classes - undefined should match character class alphabetical ranges - undefined should match character classes with leading dashes - undefined should match character classes with trailing dashes - undefined should match bracket literals - undefined should support negated character classes - undefined should match negated dashes - undefined should match negated mm - undefined should match alpha-numeric characters - undefined should not create an invalid posix character class: - undefined should return `true` when the pattern matches: - undefined should return `false` when the pattern does not match: - literals - undefined should match literal brackets when escaped - .makeRe() - undefined should make a regular expression for the given pattern: - POSIX: From the test suite for the POSIX.2 (BRE) pattern matching code: - undefined First, test POSIX.2 character classes - undefined should match using POSIX.2 negation patterns - undefined should match word characters - undefined should match digits with word class - undefined should not digits - undefined should not match word characters with digit class - undefined should match uppercase alpha characters - undefined should not match lowercase alpha characters - undefined should not match digits with upper class - undefined should match lowercase alpha characters - undefined should not match uppercase alpha characters - undefined should match one lower and one upper character - undefined should match hexidecimal digits - undefined should match punctuation characters (\-!"#$%&'()\*+,./:;<=>?@[\]^_`{|}~) - undefined should only match one character - undefined should only match one or more punctuation characters - undefined invalid character class expressions are just characters to be matched - undefined should match the start of a valid sh identifier - undefined should match the first two characters of a valid sh identifier - undefined should match multiple posix classses - undefined how about A? - undefined OK, what's a tab? is it a blank? a space? - undefined let's check out characters in the ASCII range - undefined punctuation - undefined graph - - qmarks and stars - undefined should match with qmarks - undefined should support qmark matching - undefined should correctly handle question marks in globs - undefined should match one character per question mark - undefined should match multiple groups of question marks - undefined should use qmarks with other special characters - undefined question marks should not match slashes - undefined question marks should match arbitrary dots - undefined question marks should not match leading dots - undefined question marks should match leading dots when options.dot is true - undefined question marks should match characters preceding a dot - - regex features - back-references - undefined should support regex backreferences - character classes - undefined should match regex character classes - undefined should support valid regex ranges - undefined should support valid regex ranges with glob negation patterns - undefined should support valid regex ranges in negated character classes - capture groups - undefined should support regex capture groups - undefined should support regex capture groups with slashes - undefined should support regex non-capture groups - lookarounds - undefined should support regex lookbehinds - undefined should throw an error when regex lookbehinds are used on an unsupported node version - - special characters - unicode - undefined should match Japanese characters - regex - undefined should match common regex characters - slashes - undefined should match forward slashes - undefined should match backslashes - colons and drive letters - undefined should treat common URL characters as literals - [ab] - brackets: - undefined should support regex character classes: - undefined should handle brackets - undefined should handle unclosed brackets - (a|b) - logical OR: - undefined should support regex logical OR: - dollar $ - undefined should match dollar signs - caret ^ - undefined should match carets - - stars - single stars - undefined should match using one consecutive star - undefined should support multiple non-consecutive stars in a path segment - undefined should support stars following brackets - undefined should support stars following parens - undefined should not match slashes with single stars - undefined should return true when one of the given patterns matches the string - undefined should return false when the path does not match the pattern - undefined should match a path segment for each single star - undefined should match any character besides "/" with a single "*" - undefined should support single globs (*) - undefined should only match a single folder per star when globstars are used - undefined should optionally match a trailing slash when single star is last char - undefined should support globstars (**) - undefined should work with file extensions - undefined should correctly match slashes - undefined should optionally match trailing slashes with braces - - - 1954 passing (1s) - -Removing node_modules/micromatch +dh: command-omitted: The call to "dh_auto_test" was omitted due to "DEB_BUILD_OPTIONS=nocheck" create-stamp debian/debhelper-build-stamp dh_prep dh_auto_install --buildsystem=nodejs --destdir=debian/node-micromatch/ @@ -3344,9 +1227,9 @@ No "files" field in types-micromatch/package.json, install all files Files to install: types-micromatch, !types-micromatch/build/config.gypi mkdir -p /build/reproducible-path/node-micromatch-4.0.8\+\~4.0.10/debian/node-micromatch//usr/share/nodejs/\@types/micromatch/ - install -m 644 types-micromatch/package.json /build/reproducible-path/node-micromatch-4.0.8\+\~4.0.10/debian/node-micromatch//usr/share/nodejs/\@types/micromatch// install -m 644 types-micromatch/index.d.ts /build/reproducible-path/node-micromatch-4.0.8\+\~4.0.10/debian/node-micromatch//usr/share/nodejs/\@types/micromatch// install -m 644 types-micromatch/package.json /build/reproducible-path/node-micromatch-4.0.8\+\~4.0.10/debian/node-micromatch//usr/share/nodejs/\@types/micromatch// + install -m 644 types-micromatch/package.json /build/reproducible-path/node-micromatch-4.0.8\+\~4.0.10/debian/node-micromatch//usr/share/nodejs/\@types/micromatch// Populate ${nodejs:Provides}: + node-types-micromatch (= 4.0.10) Set ${nodejs:Version} to 20.19.5+dfsg+~cs20.19.24 @@ -3373,12 +1256,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/1391783/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/1391783/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/186395 and its subdirectories -I: Current time: Mon Dec 14 16:30:45 -12 2026 -I: pbuilder-time-stamp: 1797309045 +I: removing directory /srv/workspace/pbuilder/1391783 and its subdirectories +I: Current time: Wed Nov 12 12:09:11 +14 2025 +I: pbuilder-time-stamp: 1762898951