updated for version 7.4.020
Problem: NFA engine matches too much with \@>. (John McGowan)
Solution: When a whole pattern match is found stop searching.
diff --git a/src/testdir/test64.in b/src/testdir/test64.in
index ac3f13d..8f7008c 100644
--- a/src/testdir/test64.in
+++ b/src/testdir/test64.in
@@ -427,6 +427,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'])
:" 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 da19c04..fa83f91 100644
--- a/src/testdir/test64.ok
+++ b/src/testdir/test64.ok
@@ -983,6 +983,9 @@
OK 0 - \(a*\)\@>b
OK 1 - \(a*\)\@>b
OK 2 - \(a*\)\@>b
+OK 0 - ^\(.\{-}b\)\@>.
+OK 1 - ^\(.\{-}b\)\@>.
+OK 2 - ^\(.\{-}b\)\@>.
OK 0 - \(a*\)\@>a\|a\+
OK 2 - \(a*\)\@>a\|a\+
OK 0 - \_[^8-9]\+