updated for version 7.4a.039
Problem:    New regexp engine doesn't match pattern. (Ingo Karkat)
Solution:   When adding a state also check for different PIM if the list of
            states has any state with a PIM.
diff --git a/src/testdir/test64.in b/src/testdir/test64.in
index a946aa4..82669b0 100644
--- a/src/testdir/test64.in
+++ b/src/testdir/test64.in
@@ -341,6 +341,7 @@
 :call add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo'])
 :call add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:'])
 :call add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe'])
+:call add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR'])
 :"
 :"""" Combining different tests and features
 :call add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab'])
diff --git a/src/testdir/test64.ok b/src/testdir/test64.ok
index efcf8dd..d08227f 100644
--- a/src/testdir/test64.ok
+++ b/src/testdir/test64.ok
@@ -779,6 +779,9 @@
 OK 0 - m\k\+_\@=\%(_\@!\k\)\@<=\k\+e
 OK 1 - m\k\+_\@=\%(_\@!\k\)\@<=\k\+e
 OK 2 - m\k\+_\@=\%(_\@!\k\)\@<=\k\+e
+OK 0 - \%(\U\@<=S\k*\|S\l\)R
+OK 1 - \%(\U\@<=S\k*\|S\l\)R
+OK 2 - \%(\U\@<=S\k*\|S\l\)R
 OK 0 - [[:alpha:]]\{-2,6}
 OK 1 - [[:alpha:]]\{-2,6}
 OK 2 - [[:alpha:]]\{-2,6}