I have a foggy recollection of compute times exploding for me on a large regex in .Net code and I used a feature I hadn't seen in JavaScript's RegExp that allowed me to mark off sections of already matched parts of the regular expression that prevented it from backtracking.
Perhaps the answer isn't removing features for linear regex, but adding more features to make it more expressive and tunable?