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]\+