updated for version 7.4.037
Problem: Using "\ze" in a sub-pattern does not result in the end of the
match to be set. (Axel Bender)
Solution: Copy the end of match position when a recursive match was
successful.
diff --git a/src/testdir/test64.in b/src/testdir/test64.in
index ef04ba2..2df9a6b 100644
--- a/src/testdir/test64.in
+++ b/src/testdir/test64.in
@@ -425,6 +425,7 @@
:"
:" complicated look-behind match
:call add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
+:call add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo'])
:"
:""""" \@>
:call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
diff --git a/src/testdir/test64.ok b/src/testdir/test64.ok
index a1c3f56..401da40 100644
--- a/src/testdir/test64.ok
+++ b/src/testdir/test64.ok
@@ -983,6 +983,9 @@
OK 0 - \(r\@<=\|\w\@<!\)\/
OK 1 - \(r\@<=\|\w\@<!\)\/
OK 2 - \(r\@<=\|\w\@<!\)\/
+OK 0 - ^[a-z]\+\ze \&\(asdf\)\@<!
+OK 1 - ^[a-z]\+\ze \&\(asdf\)\@<!
+OK 2 - ^[a-z]\+\ze \&\(asdf\)\@<!
OK 0 - \(a*\)\@>a
OK 1 - \(a*\)\@>a
OK 2 - \(a*\)\@>a