After years of using Emacs, I only just discovered that incremental search works within the ordinary find-file (C-x C-f) function. Try it: C-x C-f, then C-r, and search for a piece of a filename you opened in the recent past. Try C-M-r, and it works with regexes, too.