patch 9.0.0228: crash when pattern looks below the last line

Problem:    Crash when pattern looks below the last line.
Solution:   Consider invalid lines to be empty. (closes #10938)
diff --git a/src/regexp_bt.c b/src/regexp_bt.c
index e7cb1f2..cf484e0 100644
--- a/src/regexp_bt.c
+++ b/src/regexp_bt.c
@@ -3439,12 +3439,17 @@
 	    break;
 
 	  case RE_VCOL:
-	    if (!re_num_cmp((long_u)win_linetabsize(
-			    rex.reg_win == NULL ? curwin : rex.reg_win,
-			    rex.reg_firstlnum + rex.lnum,
-			    rex.line,
-			    (colnr_T)(rex.input - rex.line)) + 1, scan))
-		status = RA_NOMATCH;
+	    {
+		win_T	    *wp = rex.reg_win == NULL ? curwin : rex.reg_win;
+		linenr_T    lnum = rex.reg_firstlnum + rex.lnum;
+		long_u	    vcol = 0;
+
+		if (lnum > 0 && lnum <= wp->w_buffer->b_ml.ml_line_count)
+		    vcol = (long_u)win_linetabsize(wp, lnum, rex.line,
+					      (colnr_T)(rex.input - rex.line));
+		if (!re_num_cmp(vcol + 1, scan))
+		    status = RA_NOMATCH;
+	    }
 	    break;
 
 	  case BOW:	// \<word; rex.input points to w