MINOR: regex: Use native PCRE API.

The pcreposix layer (in the pcre projetc) execute strlen to find
thlength of the string. When we are using the function "regex_exex*2",
the length is used to add a final \0, when pcreposix is executed a
strlen is executed to compute the length.

If we are using a native PCRE api, the length is provided as an
argument, and these operations disappear.

This is useful because PCRE regex are more used than POSIC regex.
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