Using the following regular expression:
\%(|\u.*\)\@<=[^|\t]\+$
I get a match in this line with default settings, or when I force automatic selection with \%#=0:
xxxxxxxxxxxx xxxx xxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxx xxxxx xxxxxxx xx xxxx xxxxxxxx xxxx xxxxxxxxxxx xxx xxxxxxx xxxxxxxxx xx xxxxxx xx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx xxx xxxxxxxx xxxxxxxxx xxxx xxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxxxxxxx xx xxxxx xxx xxxxxxxx xxxxxx xxx xxx xxxxxxxxx xxxxxxx x xxxxxxxxx xx xxxxxx xxxxxxx xxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxx xxx xxx xxxxxxxx xxxxxxx xxxx xxx xxxxxx xxxxx xxxxx xx xxxxxx xxxxxxx xxx xxxxxxxxxxxx xxxx xxxxxxxxx xxxxxx xxxxxx xxxxx xxx xxxxxxx xxxxxxxxxxxxxxxx xxxxxxxxx xxxxxxxxxx xxxx xx xxxxxxxx xxx xxxxxxxxxxx xxxxx
However, if I force the engine to either 1 or 2, there is no match, as expected.
Tested in 7.4.1862, with patch 1848 reverted. I will try again in a more recent Vim when I get time to compile it later today, but I took a quick look at the patch list and didn't see anything that appears relevant since then.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.![]()
Confirmed, this also affects 7.4.1940, both on 64-bit Windows 7, and on Solaris. Setting the 'regexpengine' to either 1 or 2 also causes the pattern to correctly not match.
Can you please set verbose before searching?
I did "gvim -N -u NONE -i NONE" then ":set verbose=15". Searching for "\%(|\u.*)\@<=[^|\t]+$" in a long line with no uppercase characters still matches, and I get no messages at all.
I wonder if this happens, because the NFA engine stops because it returns NFA_TOO_EXPENSIVE and then the retry with the old engine is somehow confused?
I don't think so (and I guess I proved it with the verbose setting, unless I did that wrong), because I can force the new engine with \%#=2 or by setting 'regexpengine', and the pattern works as expected.
—
You are receiving this because you commented.