The features are less important than the linear complexity.
It lowers to an NFA. An NFA can recognise any linear language, so adding more features affects the generation of the NFA, while increasing the performance involves faster matching against the NFA.
In this case he's done a followup with benchmarks where he's converting the NFA to a DFA ajd comparing favourably against both Node and your browers regexp engine with only a tiny little bit extra code:
https://jasonhpriestley.com/regex-dfa
That doesn't mean there isn't value to the rest of those 20k lines of code I referenced - that was not the point.
A lot of them adds a bunch of convenience, like a more expressive syntax that saves you from writing more convoluted regexps, and it presumably bought more performance than their previous, smaller iteration, every step up from a much smaller engine way back. I'm sure one could do better with less, but I'm also not dismissing that I'm sure each step was reasonable given the constraints.
But that too is also not the point. It was not about dismissing the size of the Ruby regexp engine as not worth it.
The point was that there is a very significant and rapid diminishing return, and that this explains why you can do so seemingly much with so very little, because the leap from no capability to something usable takes very little, but each subsequent increment will tend to buy you less, for more work.
That doesn't mean people should stop putting in that extra work and squeeze out a bit more. It just gives an answer to the question in the link.