In permissive completion, RET takes the text in the minibuffer exactly as given, without completing it. The completion commands display a list of all possible completions in a window whenever there is more than one possibility for the very next character. When completion is done on file names, certain file names are usually ignored. Normally, a completion command that finds the next character is undetermined automatically displays a list of all possible completions. Every argument that you enter with the minibuffer is saved on a minibuffer history list so that you can use it again later in another argument.
Special commands load the text of an earlier argument in the minibuffer.
They discard the old minibuffer contents, so you can think of them as moving through the history of previous arguments. The simplest way to reuse the saved arguments in the history list is to move through the history list one element at a time. The previous input that you fetch from the history entirely replaces the contents of the minibuffer. To use it as the argument, exit the minibuffer as usual with RET . There are also commands to search forward or backward through the history.