updated for version 7.4.036
Problem: NFA engine does not capture group correctly when using \@>. (ZyX)
Solution: Copy submatches before doing the recursive match.
diff --git a/src/testdir/test64.in b/src/testdir/test64.in
index 7a20e18..ef04ba2 100644
--- a/src/testdir/test64.in
+++ b/src/testdir/test64.in
@@ -430,6 +430,7 @@
:call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
:call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
:call add(tl, [2, '^\(.\{-}b\)\@>.', ' abcbd', ' abc', ' ab'])
+:call add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', ''])
:" TODO: BT engine does not restore submatch after failure
:call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
:"
diff --git a/src/testdir/test64.ok b/src/testdir/test64.ok
index 53affcd..a1c3f56 100644
--- a/src/testdir/test64.ok
+++ b/src/testdir/test64.ok
@@ -992,6 +992,9 @@
OK 0 - ^\(.\{-}b\)\@>.
OK 1 - ^\(.\{-}b\)\@>.
OK 2 - ^\(.\{-}b\)\@>.
+OK 0 - \(.\{-}\)\(\)\@>$
+OK 1 - \(.\{-}\)\(\)\@>$
+OK 2 - \(.\{-}\)\(\)\@>$
OK 0 - \(a*\)\@>a\|a\+
OK 2 - \(a*\)\@>a\|a\+
OK 0 - \_[^8-9]\+