I guess you are not familiar with amigados wildcard syntax?
The following are reserved for pattern matching:
( ) [ ] ~ | # ? % `
Here's what they do
? matches any single character. so a? matches all 2-letter words beginning with a.
# matches zero or more copies of whatever follows it, so b#a matches b, ba, baa, and so on.
() groups expressions together - useful in combination with | and ~
~ negates the meaning of whatever follows it. Hence ~(#?.info) matches everything which doesn't end in .info
| represents an either/or choice. e.g. foo.(txt|doc) will match both foo.txt and foo.doc
[] defines a letter range. e.g. [a-d].txt will match a.txt, b.txt, c.txt and d.txt,
% matches the null (empty) string. Never really found much use for this one :-)
` escapes the next character if it is any of the above wildcards. You'd need this for your brackets to suppress their wildcard meaning.
The most common combination wildcard is #? means any quantity of anything, i.e. everything!