Hello, I'm trying to port my old regex code from pcre to boost.regex. There is a sample: void print_captures(const std::string& regx, const std::string& text) { boost::regex e(regx, boost::regex::perl); boost::smatch what; std::cout << "Expression: \"" << regx << "\"\n"; std::cout << "Text: \"" << text << "\"\n"; if(boost::regex_search(text, what, e, boost::match_extra)) { unsigned i, j; for(i = 0; i < what.size(); ++i) std::cout << " $" << i << " = \"" << what[i] << "\"\n"; } else { std::cout << "** No Match found **\n"; } } int main(int , char* []) { print_captures("http:\\/\\/.*\\.(.*\\.cn)", "\n\nhttp:// www.sc500.cn/hi/mom! \ \n test http:// rdfhr.zeyulariy.cn \ \n test http:// adtgr.zeytlariy.cn \n \ http://super.test.com"); return 0; } boost::regex output is: $0 = "http://www.sc500.cn/hi/mom! test http:// rdfhr.zeyulariy.cn test http:// adtgr.zeytlariy.cn" $1 = "zeytlariy.cn" Whereas where I'm using pcre I got following substrings (except full match): sc500.cn zeytlariy.cn zeyulariy.cn which is expected. So I'm confused about how perl expressions are worked. How can I get the same results using boost instead of pcre? Thank you.