Use extglob for match groups in patterns instead of regex modifiers
Wherever Antora support specifying a match pattern, we should prefer using the extglob syntax for match groups (repeating, excluding, etc) instead of regexp modifiers. The extglob syntax is more consistent, more powerful, and likely more familiar to users.
We started down the path of turning off extglob to encourage the use of regex-style repeat modifiers. However, what we found is that it gets mixed up with other special characters (* and ? and braces) and thus doesn't work the way we expect it to. The extglob syntax is better supported.
Here's how a brace expression can be repeated one or more times using regex-style modifiers:
{1,2}+
Here's how it looks when we use extglob:
+({1,2})
The extglob syntax cannot be mistaken. It always requires the surrounding parenthesis with a leading modifier. The regex-style modifier often gets applied in unexpected cases. With the regex-style, we also lose the ability to specify the zero or more or zero or one matches because * and ? already have special meaning following a group.
Furthermore, extglob behaves more consistently in micromatch. For example, there's currently a bug with the * modifier on braces (see https://github.com/micromatch/picomatch/issues/97). The downside of the extglobs is that it introduces more special characters (+, *, !, ?, @) (read as: more magic). Yet, they're placed in such a way that it would be hard to interpret them as anything else.
As a point of comparison, here's the pattern to match even version numbers using the extglob:
v*({0..9}){0..8..2}.*
By changing to extglob, we can make pattern matching consistent throughout Antora.