> The question is whether or not !(x) should match the empty string. The > bash matcher treats it similarly to [!x], which does not.
It does however match the empty string at most times. So I guess that's the real bug. Again, there is some inconsistency in $ echo *!(x)a # does match empty string a ba $ echo a*!(x) # does not ba [OT] Thanks for your work for the Bash project. I've just learned that you've been the main maintainer for a long time, so keep it up! :)