
Actually, I'm thinking that the fix may be easier than I thought after all - if I add a 2-arg "range-checked" constructor as an overload, then the iterator's constructor can validate the end-points of the underlying sequence during construction, and there's no need to otherwise change the implementation or add overhead by checking every increment/decrement for movement out-of-range because we'll know that it can't happen.
Ah! Nice solution! Go for it!
This is now fixed in Trunk, also updated tests (and code somewhat) for Unicode v6, and added minimalist docs: http://svn.boost.org/svn/boost/trunk/libs/regex/doc/html/boost_regex/ref/int... None of which precludes other (better?) versions appearing as libraries in their own right in the future.... it's just that as these have been stable since 2004 it seemed sensible to give them a quick make-over rather than roll out all new code. HTH, John.