| * alone | all types |
| * in an identifier | any sequence of characters, not including "." |
| .. in an identifier | any sequence of characters starting and ending with "." |
The + wildcard can be appended to a type name pattern to indicate all subtypes.
Any number of []s can be put on a type name or subtype pattern to indicate array types.
| TypeNamePattern | all types in TypeNamePattern |
| SubtypePattern | all types in SubtypePattern, a pattern with a +. |
| ArrayTypePattern | all types in ArrayTypePattern, a pattern with one or more []s. |
| !TypePattern | all types not in TypePattern |
| TypePattern0 && TypePattern1 | all types in both TypePattern0 and TypePattern1 |
| TypePattern0 || TypePattern1 | all types in either TypePattern0 or TypePattern1 |
| ( TypePattern ) | all types in TypePattern |