So I wrote my own workaround. Head over here to download, get usage info or view a demo.
My simulation defines three methods: match2 and replace2 (of the String object), and test2 (of the RegExp object). All work like their native counterparts, except they each accept an additional parameter - the LBA (as a string).
So to change all scary animals to scary monsters, you could do this:
1alert('scary lion; scary crocodile; cute puppy'.replace2(/[a-z]+/gi, 'monster', '(?<=scary )'));
2//== scary monster; scary monster; cute puppy
You see my current project involves writing a script which localises British into US English.
Some words change only when used as nouns. For example 'torch' becomes 'flashlight', but only when used as a noun. So it would change in the sentence "to shine a torch", but not in "to torch a building". 'Film' > 'movie' is another such example.
I realised the way to detect the role of a word within a sentence was (at least chiefly) to look at the word preceding it. For example if the word was preceded by the infinitive preposition 'to', or by a pronoun, it was most likely a verb.
I hope it proves as useful to some of you as it has to me! Head over here to download, get usage info or view a demo.