Hi Lukas,
That's great to hear!
I have been thinking about your use-case since you last posted. I am sorry that things are slow to change in PCRE2 (since we only work in our free time).
I tried to see your pull request, but couldn't see what were the changes you made. I imagine you added yielding to the main matching loop in the regex interpreter?
As a long-term goal I could see us (potentially) making the following changes:
* Work harder to ensure that regex compilation is linear-time (at the moment it's at last worst-case O(n^2) in a handful of places). Knowing that compilation always completes in a reasonable length of time would be preferable to the current situation.
* Accept a patch, or write one ourselves, to allow for incremental/yieldable matching
* There are just a handful of regex operations which can take a long time - making these yieldable would be hard. A good example is "(x*)Y\1" which will match "xxxxxYxxxxx". The "\1" is a single atomic operation in our matcher, but it can examine an arbitrary amount of text (bounded only by the length of the input string - not the length of the pattern string). There would be, possibly, ways to make these yieldable as well.
Would these changes help you?
Are you interested in improvements beyond simply making matching yieldable?
Thank you very much for coming back to the thread to update us on your progress.