Add caret (^) as a grouping negation indicator after an opening bracket

It appears reasonably common for both "^" and "!" to be supported by glob pattern matching
implementations. The POSIX guidelines declare its usage "undefined", which I take to mean
it's at the implementers discretion.

Lexer definition updated to now look for either character. Unit tests have been modified
with various appropriate test case changes.