MINOR: pattern: new sflag PAT_SF_REGFREE indicates regex_free() is needed

Currently we have no way to know how to delete/prune a pattern in a
generic way. A pattern doesn't contain its own type so we don't know
what function to call. Tree nodes are roughly OK but not lists where
regex are possible. Let's add one new bit for sflags at index time to
indicate that regex_free() will be needed upon deletion. It's not used
for now.
diff --git a/include/haproxy/pattern-t.h b/include/haproxy/pattern-t.h
index aa77c9a..b5b4d0b 100644
--- a/include/haproxy/pattern-t.h
+++ b/include/haproxy/pattern-t.h
@@ -69,6 +69,7 @@
 /* possible flags for patterns storage */
 enum {
 	PAT_SF_TREE        = 1 << 0,       /* some patterns are arranged in a tree */
+	PAT_SF_REGFREE     = 1 << 1,       /* run regex_free() on the pointer */
 };
 
 /* ACL match methods */
diff --git a/src/pattern.c b/src/pattern.c
index e4a1e27..5c83a5c 100644
--- a/src/pattern.c
+++ b/src/pattern.c
@@ -1240,6 +1240,7 @@
 	memcpy(&patl->pat, pat, sizeof(*pat));
 
 	/* compile regex */
+	patl->pat.sflags |= PAT_SF_REGFREE;
 	if (!(patl->pat.ptr.reg = regex_comp(pat->ptr.str, !(expr->mflags & PAT_MF_IGNORE_CASE),
 	                                     cap, err))) {
 		free(patl);