Character classes such as [:blank:], [:punct:], etc are incorrectly interpreted as [:alnum:]. This also applies to negated classes, e.g., [![:alnum:]] is intepreted as [[:alnum:]]. Stackexchange has an old report of the bug and this answer has a suggested fix. https://unix.stackexchange.com/a/171578
Scratch the part about negations. I confused globbing and regex syntax.