We are using and old and heavily modified version of irregexp at the moment (which has had new features added like dotAll), however the implementation is difficult to maintain and expand due to subtle issues in object handling as evidenced by the hard to trace issue in my lookbehind implementation.
Mozilla ran into the same and chose to import a new version of irregexp from Google Chrome and using it as-is with plumbing built around it to make SpiderMonkey being able to deal with the code.
We should do the same, considering manually implementing the irregexp code updates in our version of irregexp will likely need an updated version anyway, and rewriting that to be similar to what we have now would likely be even more work.
This is a somewhat large code porting project but should be fairly straightforward.
This is fairly self-contained to this meta bug and what is listed as dependent tasks in that meta.
BMO Reference (Meta): Bug 1367105