The doc string for `read-file-name' says
If optional sixth arg predicate is non-nil, possible completions and
the resulting file name must satisfy (funcall predicate NAME).
However testing with
(read-file-name "File: " nil nil nil nil (lambda(name) (string-match
"wantname")))
and entering some characters for the file name and then pressing <RET>
just seem to return whatever the mini-buffer shows. Maybe this is
correct. The doc string could be read as "resulting file name from
completion". But it is in my opinion still unclear and a bit unexpected.
This is on w32. GNU Emacs 22.0.50.1 (i386-mingw-nt5.0.2195) of 2006-03-28.