SSH, The Secure Shell: The Definitive Guide, 2nd Edition
by Daniel J. Barrett, Richard E. Silverman, Robert G. Byrnes
Regex Syntax: ZSH_FILEGLOB (or Traditional) Patterns
The escape character is a backslash (\). With this you can escape metacharacters to
use them in their plain character form.
In the following examples, literal E and F
denote any expression, whether a pattern or a character:
*Match any string consisting of zero or more characters. The characters can be any characters apart from slashes (
/). However, the asterisk does not match a string if the string contains a dot (.) as its first character, or if the string contains a dot immediately after a slash. This means that the asterisk cannot be used to match filenames that have a dot as their first character.If the previous character is a slash (
/), or if an asterisk (*) is used to denote a match at the beginning of a string, it does match a dot (.).That is, the asterisk (
*) functions as normal in Unix shell fileglobs.?Match any single character except for a slash (
/). However, do not match a dot (.) if located at the beginning of the string, or if the previous character is a slash (/).That is, the question mark (
?) functions as normal in Unix shell fileglobs (at least in ZSH, although discarding the dot may not be a standard procedure).**/Match any sequence of characters that is either empty, or ends in a slash. However, the substring
/.is not allowed. This mimics the**/construct in ZSH. (Please note that**is equivalent to*.)E#Act as Kleene star, match
Ezero or more times.E##Closure, match
Eone or more times.
( Start a capturing ...