Simple name filter utility class.
- a filter consists of one or more globs
- a glob prefixed by {@code -} (dash) is treated as an exclusion pattern;all others are considered inclusion patterns
- a leading {@code -} (dash) must be escaped by prepending {@code \} (backslash)if it should be interpreted as a literal
- {@code *} (asterisk) serves as a wildcard, i.e. it matches anysubstring in the target name
- {@code *} (asterisk) occurrences within the glob to be interpreted asliterals must be escaped by prepending {@code \} (backslash)
- a filter matches a target name if any of the inclusion patterns match but none of the exclusion patterns
Examples:
{@code ["foo*", "-foo99"]} matches {@code "foo"} and {@code "foo bar"}but not {@code "foo99"}.
{@code ["foo\*"]} matches {@code "foo*"} but not {@code "foo99"}.
{@code ["\-blah"]} matches {@code "-blah"}.