I checked and can now confirm that the version where the behavior of your test script changes is Expect v1.26, which is where I quoted the Changelog entry from above. Specifically, it's commits 7ee4816 and d9e0365 that each change the behavior of your script.
The problem actually turns out to be fairly simple: The position of a capturing group was changed. Previously, the module did /$pattern->()/ where it now does /($pattern->)/, which changes the ordering of the capture groups and which breaks your \2 backreference. Change the backreference to \g-1 and your regex should work even on the newest version of Expect (at least my testing shows that it does).