diff --git a/src/regexp.h b/src/regexp.h
index c2fafef..5762338 100644
--- a/src/regexp.h
+++ b/src/regexp.h
@@ -33,8 +33,8 @@
 #define NFA_MAX_STATES 100000
 #define NFA_TOO_EXPENSIVE -1
 
-/* Which regexp engine to use? Needed for vim_regcomp().
- * Must match with 'regexpengine'. */
+// Which regexp engine to use? Needed for vim_regcomp().
+// Must match with 'regexpengine'.
 #define	    AUTOMATIC_ENGINE	0
 #define	    BACKTRACKING_ENGINE	1
 #define	    NFA_ENGINE		2
@@ -62,7 +62,7 @@
  */
 typedef struct
 {
-    /* These four members implement regprog_T */
+    // These four members implement regprog_T
     regengine_T		*engine;
     unsigned		regflags;
     unsigned		re_engine;
@@ -76,7 +76,7 @@
 #ifdef FEAT_SYN_HL
     char_u		reghasz;
 #endif
-    char_u		program[1];	/* actually longer.. */
+    char_u		program[1];	// actually longer..
 } bt_regprog_T;
 
 /*
@@ -90,7 +90,7 @@
     nfa_state_T		*out;
     nfa_state_T		*out1;
     int			id;
-    int			lastlist[2]; /* 0: normal, 1: recursive */
+    int			lastlist[2]; // 0: normal, 1: recursive
     int			val;
 };
 
@@ -99,28 +99,28 @@
  */
 typedef struct
 {
-    /* These three members implement regprog_T */
+    // These three members implement regprog_T
     regengine_T		*engine;
     unsigned		regflags;
     unsigned		re_engine;
     unsigned		re_flags;
     int			re_in_use;
 
-    nfa_state_T		*start;		/* points into state[] */
+    nfa_state_T		*start;		// points into state[]
 
-    int			reganch;	/* pattern starts with ^ */
-    int			regstart;	/* char at start of pattern */
-    char_u		*match_text;	/* plain text to match with */
+    int			reganch;	// pattern starts with ^
+    int			regstart;	// char at start of pattern
+    char_u		*match_text;	// plain text to match with
 
-    int			has_zend;	/* pattern contains \ze */
-    int			has_backref;	/* pattern contains \1 .. \9 */
+    int			has_zend;	// pattern contains \ze
+    int			has_backref;	// pattern contains \1 .. \9
 #ifdef FEAT_SYN_HL
     int			reghasz;
 #endif
     char_u		*pattern;
-    int			nsubexp;	/* number of () */
+    int			nsubexp;	// number of ()
     int			nstate;
-    nfa_state_T		state[1];	/* actually longer.. */
+    nfa_state_T		state[1];	// actually longer..
 } nfa_regprog_T;
 
 /*
@@ -150,7 +150,7 @@
     lpos_T		startpos[NSUBEXP];
     lpos_T		endpos[NSUBEXP];
     int			rmm_ic;
-    colnr_T		rmm_maxcol;	/* when not zero: maximum column */
+    colnr_T		rmm_maxcol;	// when not zero: maximum column
 } regmmatch_T;
 
 /*
@@ -173,4 +173,4 @@
     char_u	*expr;
 };
 
-#endif	/* _REGEXP_H */
+#endif	// _REGEXP_H
