Can you give an actual example of the text string and the results you would want to capture? I think I understand what you want, but an example could solidify my assumptions.
I would have done a literal match for the unchanging parts, and then \w or [a-z] with a counter for one or more times for the beginning of the verb - but I am no expert in regex
What is the ultimate goal once you have identified something like ended up getting staked which appears in your example text. Are you wanting to replace a portion of it with something else?
Tom ended up spending his money. That was when Victor made his real move, kidnapping her and torturing her until she gave into his demands. Tony ended up dying. In the process, he took some pretty extreme measures¡ªlike zapping me and Dimitri, my mentor, with a lust spell. (I’ll get to him later). Victor also exploited the way spirit was starting to make Lissa mentally unstable. But even that wasn’t as bad as what he did to his own daughter Natalie. He went so far that she ended up moving out to encourage her to turn into a Strigoi to help cover his escape. She ended up getting staked again. Even when captured after the fact, Victor didn’t seem to display too much guilt over what he’d asked her to do. Makes me think I wasn’t missing out on growing up without a father.
then you could use something like the following to get all (or most) sentences which match the pattern you want:
const regex = /([a-z]+[,;]? )+ended up [a-z]+ing( [a-z]+)+\./gi;
str.match(regex);
The above would create the following array of sentences:
[
'Tom ended up spending his money.',
'Tony ended up dying.',
'He went so far that she ended up moving out to encourage her to turn into a Strigoi to help cover his escape.',
'She ended up getting staked again.'
]