I am using boost::regex (1.29.0) under MSVC++ 6.0. Whenever I call regex_match(), I get: "Unhandled exception in filename.exe: 0xC0000094: Integer Divide by Zero." I have tried various ways to make the call (including the snippets posted on www.boost.org). Even this simple example fails: regex expression("abc"); cmatch what; if ( regex_match("xyz", what, expression) ) { // Whatever ... } Breakpoints reveal that after expression is set, the value of _expression_len is still 0. So when regex_match() is called, it in turn sends the value of expression.size() (which is just _expression_len) to re_detail::_priv_match_data(), which sends this value to estimate_max_state_count(). Then estimate_max_state_counts(), which calls this value "states", does the following: states *= states; // and later ... if(dist > (difference_type)(lim / states)) Since states is 0, this last expression causes division by 0, and the resulting exception. In case my environment matters, I am building my program under MSVC++ 6.0, running with boost_regex.dll. I am defining BOOST_REGEX_NO_LIB and BOOST_REGEX_USE_CPP_LOCALE, and linking in boost_regex.lib. What am I doing wrong? Glover Barker