These produce completion lists made up by the shell itself:
-fFilenames and file system paths.
-/Just file system paths.
-cCommand names, including aliases, shell functions, builtins and reserved words.
-FFunction names.
-BNames of builtin commands.
-mNames of external commands.
-wReserved words.
-aAlias names.
-RNames of regular (non-global) aliases.
-GNames of global aliases.
-dThis can be combined with -F, -B, -w,
-a, -R and -G to get names of disabled
functions, builtins, reserved words or aliases.
-eThis option (to show enabled commands) is in effect by default, but
may be combined with -d; -de in combination with
-F, -B, -w, -a, -R and -G
will complete names of functions, builtins, reserved words or aliases
whether or not they are disabled.
-oNames of shell options (see Options).
-vNames of any variable defined in the shell.
-NNames of scalar (non-array) parameters.
-AArray names.
-INames of integer variables.
-ONames of read-only variables.
-pNames of parameters used by the shell (including special parameters).
-ZNames of shell special parameters.
-ENames of environment variables.
-nNamed directories.
-bKey binding names.
-jJob names: the first word of the job leader’s command line. This is useful
with the kill builtin.
-rNames of running jobs.
-zNames of suspended jobs.
-uUser names.