A concrete example may help here. If you type M-x au TAB,
the TAB looks for alternatives (in this case, command names) that
start with `au'. There are several, including
auto-save-mode---but they are all the
same as far as
auto-, so the `au' in the minibuffer changes
If you type TAB again immediately, there are multiple possibilities for the very next character--it could be any of `cfilrs'---so no more characters are added; instead, TAB displays a list of all possible completions in another window.
If you go on to type f TAB, this TAB sees
`auto-f'. The only command name starting this way is
auto-fill-mode, so completion fills in the rest of that. You now
have `auto-fill-mode' in the minibuffer after typing just au
TAB f TAB. Note that TAB has this effect because in
the minibuffer it is bound to the command
when completion is available.
Go to the first, previous, next, last section, table of contents.