Is there anything I can do to speed it up?
Other that use a custom allocator as suggested, probably not. One unfortunate side effect of regular expressions is that you pay for everything that you *may* use rather than just what you do. In particular if you don't want: a) wide character regexes. b) support for backreferences. c) support for marked subexpressions. Then there are significantly faster algorithms that can be used, of course these don't work if you do want those features :-( C based libraries can also use alloca, which generally gives at least a 2x performance increase. As far as I know, Rogue Waves lib uses all of the above - that gives better performance at the expense of features. John Maddock http://ourworld.compuserve.com/homepages/john_maddock/index.htm