Patch looks good to me. Great idea overall, that forced regex has always bugged me.
+ char *regexChars = "|*+?()[]{}.^$\\"; One super minor optimization is that we technically do not need to scan for ')' and ']'. If they appear without their partner, the query will fail anyway. :) Cheers, Greg