1) Hi Kai, I wrote const_iterator BOOST_REGEX_CALL end()const { // JME 27/10/16 pour savoir si on passe là, je crée une division par 0 en // esperant que le compilateur ne la détecte pas int ijme1, ijme2; ijme2 = 1; ijme1 = 2; --ijme2; ijme1 = ijme1 / ijme2; return (!this->m_status ? 0 : this->m_expression + this->m_expression_len); // return (this->m_status ? 0 : this->m_expression + this->m_expression_len); JME 26/10/16 } Hoping the divide by 0 error would be thrown but it never appears. So I don't think this bug is annoying me. 2) As I am new to boost and regex I tried a simple test : string pattern = "GHI+"; string chaineatester = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; boost::regex boost_pattern( pattern ); boost::smatch what; int errjme = boost::regex_match( chaineatester, what, boost_pattern ); if (errjme == 1) { *outputLog << "test 1: GHI+ a été trouvé" << endl; } else { *outputLog << "test 1: GHI+ n'a pas été trouvé" << endl; // what[0] contains the whole string // what[1] contains the response code // what[2] contains the separator character // what[3] contains the text message. *outputLog << " what[0]:" << what[0] << endl \ << " what[1]:" << what[1] << endl \ << " what[2]:" << what[2] << endl \ << " what[3]:" << what[3] << endl; } string pattern2 = "GHI"; boost::regex boost_pattern2( pattern2 ); errjme = boost::regex_match( chaineatester, what, boost_pattern2 ); if (errjme == 1) { *outputLog << "test 1bis: GHI a été trouvé" << endl; } else { *outputLog << "test 1bis: GHI n'a pas été trouvé" << endl; *outputLog << " what[0]:" << what[0] << endl \ << " what[1]:" << what[1] << endl \ << " what[2]:" << what[2] << endl \ << " what[3]:" << what[3] << endl; } And here is what I get : test 1: GHI+ n'a pas été trouvé what[0]: what[1]: what[2]: what[3]: test 1bis: GHI n'a pas été trouvé what[0]: what[1]: what[2]: what[3]: What am I doing wrong ? Jean