Я не знаю пакета std :: tr1 :: regex, но если он фактически основан на boost :: regex, то перевод этих регулярных выражений должен быть тривиальным:
"\\s*nameserver\\s+(?<address>.*)"
"\\s*search\\s+(?<domain>.*)"
Вам нужно избегать обратной косой черты при построении строки, содержащей регулярное выражение. Кроме того, эти два регулярных выражения не используют никаких функций, которые не может обработать Perl-совместимый движок boost :: regex.