Patterns run in a background worker with a 2-second limit, so a pattern that backtracks catastrophically stops instead of freezing this tab. JavaScript regex syntax, which differs from PCRE in places — no lookbehind in older Safari, no atomic groups.