Tips for restricted source in zsh Adapted from tips for restricted-source in Python
Just like code-golf, restricted-source pushes one to exploit quirks and hidden features of the zsh language. While we already have a place to collect all these tips for code-golf, those for restricted-source remain transmitted by word of mouth or hidden deep within the manual pages.
So, what are some tips for solving restricted-source challenges in zsh?
Please only include 1 tip per answer. Please downvote answers with multiple tips in them.

What makes a good tip here?
There are a couple of criteria I think a good tip should have:

It should be (somewhat) non obvious.
Similar to the code-golf tips, it should be something that someone who has golfed in zsh (or bash) a bit and read the tips page would not immediately think of. For example, &quot;replace a + b with a+b to avoid using spaces&quot; is obvious to any golfer since it is already a way to make your code shorter and thus not a good tip.

It should not be too specific.
Since there are many different types of source restrictions, answers here should be at least somewhat applicable to multiple source restrictions, or one common source restriction.  For example tips of the form &quot;How to X without using character(s) Y&quot; are generally useful since banned characters is a common source restriction.  The thing your tip helps to do should also be somewhat general.  For example tips of the form &quot;How to create numbers with X restriction&quot; are useful since many programs utilize numbers regardless of the challenge.  Tips of the form &quot;How to implement Shor's algorithm with X restriction&quot; are basically just answers to a challenge you just invented and not very helpful to people solving other challenges.
Globbing
Globs are patterns used to match files and other strings. If you can't use a particular character but you need to access a command with that character in its name, you can often approximate it with a glob, like /*/ls
The full description of glob syntax is under Filename Generation in zshexpn(1), but here is a summary:

? matches any single character
* matches zero or more characters
&lt;1-10&gt; matches any number between 1 and 10

&lt;-&gt; matches any number


[a-d] matches any character in the set abcd
[:name:] matches any character in the named set (full details in the man-page)
[^a] or [!a] matches any character except a

[^] or [!] matches any single character


(a|b) matches a or b
With the option --nocaseglob, globbing is case-insensitive. This allows you to do /*/LS instead of ls
With the option --extendedglob, you can use the additional syntax:

^pattern matches anything except pattern
a~b matches pattern a but not b
a~^b matches both patterns a and b
a# matches zero or more instances of a
a## matches one or more instances of a