In the github documentation, there is a mention that hyperscan is used to match the source text.
The reference page here mentions differences to pcre2, but the original man page is the reference.
The supported regex constructs are documented here.
There are three patterns on the custom pattern page:
What is the order of evaluation for custom patterns; are they all put together in one pattern or are they sequentially evaluated in code?
(before)expression(after) is evaluated first. next, before/after are stripped leaving what matched the expression, then must[not] matches are evaluated after.