MINOR: regex: Copy the original regex expression into string.

This is useful for the debug or for search regex in maps.
diff --git a/src/regex.c b/src/regex.c
index 7a76940..64f93c3 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -124,6 +124,13 @@
 
 int regex_comp(const char *str, struct my_regex *regex, int cs, int cap, char **err)
 {
+	/* copy the original regex format */
+	regex->regstr = strdup(str);
+	if (!regex->regstr) {
+		memprintf(err, "out of memory");
+		return 0;
+	}
+
 #ifdef USE_PCRE_JIT
 	int flags = 0;
 	const char *error;
@@ -136,12 +143,14 @@
 
 	regex->reg = pcre_compile(str, flags, &error, &erroffset, NULL);
 	if (!regex->reg) {
+		free(regex->regstr);
 		memprintf(err, "regex '%s' is invalid (error=%s, erroffset=%d)", str, error, erroffset);
 		return 0;
 	}
 
 	regex->extra = pcre_study(regex->reg, PCRE_STUDY_JIT_COMPILE, &error);
 	if (!regex->extra) {
+		free(regex->regstr);
 		pcre_free(regex->reg);
 		memprintf(err, "failed to compile regex '%s' (error=%s)", str, error);
 		return 0;
@@ -155,6 +164,7 @@
 		flags |= REG_NOSUB;
 
 	if (regcomp(&regex->regex, str, flags) != 0) {
+		free(regex->regstr);
 		memprintf(err, "regex '%s' is invalid", str);
 		return 0;
 	}