Patterns in XSLT 3.0
XSLT 3.0 extensions to patterns that are implemented in Saxon 9.4 include the following:
Pattern syntax in the form ~ItemType is supported, for example match="~xs:integer"
matches an integer. Predicates are allowed on such patterns, for example ~xs:integer[. gt 0].
The intersect and except operators are allowed at the top level: for example
match="* except br".
Parentheses may be used in conjunction with a predicate, for example match="(//para)[1]"
Any downwards axis may be used in a pattern, for example descendant or descendant-or-self.
Other XSLT 3.0 extensions to patterns have yet to be implemented in Saxon, for example patterns that start with (or consist exclusively of) a variable reference.