Emacs also has conventional nonincremental search commands, which require
you to type the entire search string before searching begins.

C-s RETstringRET

Search for string.

C-r RETstringRET

Search backward for string.

To do a nonincremental search, first type C-s RET. This
enters the minibuffer to read the search string; terminate the string
with RET, and then the search takes place. If the string is not
found, the search command gets an error.

The way C-s RET works is that the C-s invokes
incremental search, which is specially programmed to invoke nonincremental
search if the argument you give it is empty. (Such an empty argument would
otherwise be useless.) C-r RET also works this way.

However, nonincremental searches performed using C-s RET do
not call search-forward right away. The first thing done is to see
if the next character is C-w, which requests a word search.

Forward and backward nonincremental searches are implemented by the
commands search-forward and search-backward. These
commands may be bound to keys in the usual manner. The feature that you
can get to them via the incremental search commands exists for
historical reasons, and to avoid the need to find suitable key sequences
for them.