Just spent 45 minutes groveling through 2,300 lines of bash completion gunk because apparently nowadays bash[1] will only tab-complete files based on filename "extension"[2] as if this was fucking MS-DOS.
Grrr.
[1] Well, _this_ bash on _this_ particular Linux version.
[2] E.g., "sh x<tab>" will only complete "x*.sh".