A controlled comparison changes flags and nothing else
Flags can change enumeration, case handling, anchors, dot behavior, Unicode parsing, indices, and starting-position rules. Holding pattern and text constant makes the flag set the only intentional variable.
Each side is compiled independently and reports its own flags, match count, match boundaries, captures, and truncation state. A syntax error on either flag set fails the comparison instead of silently dropping an option.