updated for version 7.3.1189
Problem:    Highlighting is still wrong sometimes. (Dominique Pelle)
Solution:   Also restore reginput properly.
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index 20f7aa3..e843cd7 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -4495,7 +4495,7 @@
     regsubs_T	    *m;
     int		    **listids;
 {
-    char_u	*save_reginput = reginput;
+    int		save_reginput_col = (int)(reginput - regline);
     int		save_reglnum = reglnum;
     int		save_nfa_match = nfa_match;
     int		save_nfa_listid = nfa_listid;
@@ -4632,10 +4632,10 @@
     }
 
     /* restore position in input text */
-    reginput = save_reginput;
     reglnum = save_reglnum;
     if (REG_MULTI)
 	regline = reg_getline(reglnum);
+    reginput = regline + save_reginput_col;
     nfa_match = save_nfa_match;
     nfa_endp = save_nfa_endp;
     nfa_listid = save_nfa_listid;
diff --git a/src/version.c b/src/version.c
index 4519fbe..2c2a00e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1189,
+/**/
     1188,
 /**/
     1187,