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 E zero or more times.

E##

Closure, match E one or more times.

( Start a capturing ...

Get SSH, The Secure Shell: The Definitive Guide, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.