In bash 5.0.17 (readline 8.0.004), consider with 'set show-all-if-unmodified on':
$ touch 'test file-1.txt' 'test file-2.txt' $ ls test<tab> This expands to 'ls test\ file-'. Then: $ ls test\ file-<tab> The partial match is unchanged, so with show-all-if-unmodified on it should show completions. However, it behaves as if the setting was not set and needs a second tab press to show completions. Contrast that with: $ touch 'test-file-1.txt' 'test-file-2.txt' $ ls test<tab> $ ls test-file-<tab> Which shows matches with a single tab press as expected. I also tested with literal tabs in the partial matches, which doesn't work either. I'd guess it has to do with the modification check not taking into account the escaped characters.