diff --git a/include/common/regex.h b/include/common/regex.h
index 29a6ace..762eb56 100644
--- a/include/common/regex.h
+++ b/include/common/regex.h
@@ -35,14 +35,12 @@
 
 struct my_regex {
 #ifdef USE_PCRE
+	pcre *reg;
+	pcre_extra *extra;
 #ifdef USE_PCRE_JIT
 #ifndef PCRE_CONFIG_JIT
 #error "The PCRE lib doesn't support JIT. Change your lib, or remove the option USE_PCRE_JIT."
 #endif
-	pcre *reg;
-	pcre_extra *extra;
-#else /* no PCRE_JIT */
-	regex_t regex;
 #endif
 #else /* no PCRE */
 	regex_t regex;
@@ -87,7 +85,7 @@
 /* If the function doesn't match, it returns false, else it returns true.
  */
 static inline int regex_exec(const struct my_regex *preg, char *subject) {
-#ifdef USE_PCRE_JIT
+#if defined(USE_PCRE) || defined(USE_PCRE_JIT)
 	if (pcre_exec(preg->reg, preg->extra, subject, strlen(subject), 0, 0, NULL, 0) < 0)
 		return 0;
 	return 1;
@@ -107,7 +105,7 @@
  * If the function doesn't match, it returns false, else it returns true.
  */
 static inline int regex_exec2(const struct my_regex *preg, char *subject, int length) {
-#ifdef USE_PCRE_JIT
+#if defined(USE_PCRE) || defined(USE_PCRE_JIT)
 	if (pcre_exec(preg->reg, preg->extra, subject, length, 0, 0, NULL, 0) < 0)
 		return 0;
 	return 1;
@@ -129,9 +127,11 @@
                       size_t nmatch, regmatch_t pmatch[]);
 
 static inline void regex_free(struct my_regex *preg) {
+#if defined(USE_PCRE) || defined(USE_PCRE_JIT)
+	pcre_free(preg->reg);
 #ifdef USE_PCRE_JIT
 	pcre_free_study(preg->extra);
-	pcre_free(preg->reg);
+#endif
 #else
 	regfree(&preg->regex);
 #endif
diff --git a/src/regex.c b/src/regex.c
index 2292002..dda666d 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -156,7 +156,7 @@
  */
 int regex_exec_match(const struct my_regex *preg, const char *subject,
                      size_t nmatch, regmatch_t pmatch[]) {
-#ifdef USE_PCRE_JIT
+#if defined(USE_PCRE) || defined(USE_PCRE_JIT)
 	int ret;
 	int matches[MAX_MATCH * 3];
 	int enmatch;
@@ -216,7 +216,7 @@
  */
 int regex_exec_match2(const struct my_regex *preg, char *subject, int length,
                       size_t nmatch, regmatch_t pmatch[]) {
-#ifdef USE_PCRE_JIT
+#if defined(USE_PCRE) || defined(USE_PCRE_JIT)
 	int ret;
 	int matches[MAX_MATCH * 3];
 	int enmatch;
@@ -272,7 +272,7 @@
 
 int regex_comp(const char *str, struct my_regex *regex, int cs, int cap, char **err)
 {
-#ifdef USE_PCRE_JIT
+#if defined(USE_PCRE) || defined(USE_PCRE_JIT)
 	int flags = 0;
 	const char *error;
 	int erroffset;
@@ -288,6 +288,7 @@
 		return 0;
 	}
 
+#ifdef USE_PCRE_JIT
 	regex->extra = pcre_study(regex->reg, PCRE_STUDY_JIT_COMPILE, &error);
 	if (!regex->extra) {
 		pcre_free(regex->reg);
@@ -295,6 +296,9 @@
 		return 0;
 	}
 #else
+	regex->extra = NULL;
+#endif
+#else
 	int flags = REG_EXTENDED;
 
 	if (!cs)
