Pattern Matching
Matchy uses glob patterns for flexible string matching. This chapter explains pattern syntax and matching rules.
Glob Syntax
Asterisk (*
)
Matches zero or more of any character.
Pattern: *.example.com
matches foo.example.com
, bar.example.com
Question Mark (?
)
Matches exactly one character.
Pattern: test-?
matches test-1
, test-a
but not test-ab
Character Sets ([abc]
)
Matches one character from the set.
Pattern: test-[abc].com
matches test-a.com
, test-b.com
, test-c.com
Negated Sets ([!abc]
)
Matches one character NOT in the set.
Ranges ([a-z]
, [0-9]
)
Matches one character in the range.
Case Sensitivity
Matching behavior depends on the match mode set when building the database.
CaseInsensitive (recommended): *.Example.COM
matches foo.example.com
CaseSensitive: Must match exact case
Common Patterns
Domain suffixes: *.example.com
, *.*.example.com
URL patterns: http://*/admin/*
Flexible matching: malware-*
, *-[0-9][0-9][0-9]
Performance
Patterns use Aho-Corasick algorithm - all patterns searched simultaneously. Typical: 1-2 microseconds for 50,000 patterns.
See Entry Types and Performance Considerations for more details.