(?<name>X) X, as a named-capturing group (?:X) X, as a non-capturing group
(?=X) X, via zero-width positive lookahead (?!X) X, via zero-width negative lookahead (?<=X) X, via zero-width positive lookbehind (?<!X) X, via zero-width negative lookbehind (?>X) X, as an independent, non-capturing groupdocumentation
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html