Glob patterns
A glob pattern is a pattern used to match sets of values. It is a shorthand for specifying multiple targets at once, making it easier to work with groups of data or configurations.
The table below details the supported glob pattern syntax and its matching behavior. Each example illustrates a specific match type, the pattern used, and the expected boolean result when evaluated against a test string.
| Match type | Glob pattern | Test string | Match? |
|---|---|---|---|
| Simple wildcard | a/*.md | a/page.md | true |
| Literal match | 'a/*.md' | a/*.md | true |
| Single-level wildcard | a/*/page.md | a/b/page.md | true |
| Single-level wildcard | a/*/page.md | a/b/c/page.md | false |
| Multi-level wildcard | a/**/page.md | a/b/c/page.md | true |
| Single character | file.??? | file.txt | true |
| Single character | file.??? | file.js | false |
| Delimiter exclusion | ?at | f/at | false |
| Character list | f.[jt]xt | f.txt | true |
| Negated list | f.[!j]xt | f.txt | true |
| Character range | f.[a-c].txt | f.b.txt | true |
| Character range | f.[a-c].txt | f.z.txt | false |
| Negated range | f.[!a-c].txt | f.z.txt | true |
| Pattern alternates | *.{jpg,png} | logo.png | true |
| No match | *.{jpg,png} | logo.webp | false |
The matching logic follows these rules:
- Standard wildcard (
*) matches any character except for a delimiter. - Super wildcard (
**) matches any character including delimiters. - Single character (
?) matches exactly one character, excluding delimiters. - Negation (
!) matches any character except those specified in a list or range when used inside brackets. - Character ranges (
[a-z]) match any single character within the specified range.
The delimiter is a slash (/), except when matching semantic version strings, where the delimiter is a dot (.).
Last updated:
February 7, 2026
:
content: Correct and improve glob patterns documentation (4d20bbc04)
Improve this page