The pattern is shared, and so is the position where its last match ended.
The common read: A regex literal is a value that describes a text pattern, so the result of test depends on the string it receives and on nothing from the call before it.
The prediction failed on a version that matches the pattern. VERSION has a lastIndex field. A regex with the g flag reads that number before it scans and writes a new value after, so the first call matched to the end of 2.4.1 and left lastIndex at 5. The second call then started reading its five-character string at index 5, where the ^ anchor cannot match. The failure path resets lastIndex to 0, and that reset is why the third version returns true.
If you write the rule down now, you will probably write it as a fact about one method: repeated calls on a global regex alternate. That sentence is true of these four calls, it predicts this transcript exactly, and it is the rule this screen gives you. In this example the compatibility check ran for four months. Nobody compared the versions it dropped against the manifest, and the ticket someone eventually filed blamed the check's ordering.

