Я полагаю, regex_match () соответствует всей строке. Попробуйте вместо этого regex_search () .
Это сработало бы со следующим регулярным выражением:
boost::regex r(".*\\..*");
и regex_match () . Но опять же, regex_search () - это то, что вы, вероятно, ищете.