updated for version 7.3.1027
Problem:    New regexp performance: Calling no_Magic() very often.
Solution:   Remove magicness inline.
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index 9029460..aafe715 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -3563,14 +3563,18 @@
 		break;
 
 	    default:	/* regular character */
-		/* TODO: put this in #ifdef later */
-		if (t->state->c < -256)
-		    EMSGN("INTERNAL: Negative state char: %ld", t->state->c);
-		result = (no_Magic(t->state->c) == curc);
+	      {
+		int c = t->state->c;
 
-		if (!result)
-		    result = ireg_ic == TRUE
-			       && MB_TOLOWER(t->state->c) == MB_TOLOWER(curc);
+		/* TODO: put this in #ifdef later */
+		if (c < -256)
+		    EMSGN("INTERNAL: Negative state char: %ld", c);
+		if (is_Magic(c))
+		    c = un_Magic(c);
+		result = (c == curc);
+
+		if (!result && ireg_ic)
+		    result = MB_TOLOWER(c) == MB_TOLOWER(curc);
 #ifdef FEAT_MBYTE
 		/* If there is a composing character which is not being
 		 * ignored there can be no match. Match with composing
@@ -3581,6 +3585,7 @@
 #endif
 		ADD_POS_NEG_STATE(t->state);
 		break;
+	      }
 	    }
 
 	} /* for (thislist = thislist; thislist->state; thislist++) */
diff --git a/src/version.c b/src/version.c
index 51d86af..c19efc3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1027,
+/**/
     1026,
 /**/
     1025,