OK, so it first looks for exact hits, then does a grep style match. And we see that
$ help f|grep :. false: false fc: fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command] fg: fg [job_spec] for: for NAME [in WORDS ... ] ; do COMMANDS; done for ((: for (( exp1; exp2; exp3 )); do COMMANDS; done function: function name { COMMANDS ; } or name () { COMMANDS ; } the function name is 'for ((' not 'for (( ))' etc. Great.