
Andrew McDonald wrote:
Hi,
I suspect I may be about to be hideously embarassed, but for the life of me I cannot see what I have done wrong, so please be kind if this turns out to be my fault ;)
Nope, I've confirmed that as a bug in 1.33.1, the patch below will be going into cvs shortly. John. Index: boost/regex/v4/perl_matcher_non_recursive.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/regex/v4/perl_matcher_non_recursive.hpp,v retrieving revision 1.33 diff -u -r1.33 perl_matcher_non_recursive.hpp --- boost/regex/v4/perl_matcher_non_recursive.hpp 27 Oct 2005 10:24:50 -00 00 1.33 +++ boost/regex/v4/perl_matcher_non_recursive.hpp 19 May 2006 12:56:31 -00 00 @@ -1066,6 +1066,8 @@ { // can't repeat any more, remove the pushed state: destroy_single_repeat(); + if((m_match_flags & match_partial) && (position == last) && (position != search_base)) + m_has_partial_match = true; if(0 == (rep->can_be_null & mask_skip)) return true; } @@ -1118,6 +1120,8 @@ { // can't repeat any more, remove the pushed state: destroy_single_repeat(); + if((m_match_flags & match_partial) && (position == last) && (position != search_base)) + m_has_partial_match = true; if(0 == (rep->can_be_null & mask_skip)) return true; } @@ -1182,6 +1186,8 @@ { // can't repeat any more, remove the pushed state: destroy_single_repeat(); + if((m_match_flags & match_partial) && (position == last) && (position != search_base)) + m_has_partial_match = true; if(0 == (rep->can_be_null & mask_skip)) return true; } @@ -1246,6 +1252,8 @@ { // can't repeat any more, remove the pushed state: destroy_single_repeat(); + if((m_match_flags & match_partial) && (position == last) && (position != search_base)) + m_has_partial_match = true; if(0 == (rep->can_be_null & mask_skip)) return true; } @@ -1311,6 +1319,8 @@ { // can't repeat any more, remove the pushed state: destroy_single_repeat(); + if((m_match_flags & match_partial) && (position == last) && (position != search_base)) + m_has_partial_match = true; if(0 == (rep->can_be_null & mask_skip)) return true; }