?',
`*', `[ ... ]' and `{...}'
are recognised. The interpretation of `{...}' is slightly
different from the C shell (csh(1)). The comma-separated argument can be
arbitrary patterns, including `{...}' patterns. The empty
pattern is legal as well: `{.pl,}' matches either `.pl'
or the empty string.
If the pattern contains wildcard characters, only existing files and directories are returned. Expanding a `pattern' without wildcard characters returns the argument, regardless of whether or not it exists.
Before expanding wildcards, the construct $\arg{var} is
expanded to the value of the environment variable var, and a
possible leading ~ character is expanded to the user's home
directory.142On Windows, the home
directory is determined as follows: if the environment variable HOME
exists, this is used. If the variables HOMEDRIVE and HOMEPATH
exist (Windows-NT), these are used. At initialisation, the system will
set the environment variable HOME to point to the
SWI-Prolog home directory if neither HOME nor HOMEPATH
and HOMEDRIVE are defined.