The decrease in regex performance is due to a change in PCRE, related to this issue. The latest version of PCRE allows the use of either recursion or heap allocation, and since recursion was resulting in a stack crash, I changed PCRE to use heap allocation. It seems that the heap allocation method seriously affects performance however.

I could switch back to the recursion method and place a limit on recursion depth, which should prevent stack crashes, in order to bring back previous performance levels. I'll see if there's a way to do that safely.