/^[\.:\,()\'\`-]/
должно стать
"^[.:,()'`-]"
Специального ограничителя регулярных выражений Perl /
в C ++ не существует, поэтому регулярные выражения являются просто строкой. В этих строках вы должны позаботиться о том, чтобы корректно избежать обратной косой черты (\\
на каждые \
в исходном регулярном выражении). Однако в вашем примере все эти обратные слеши были ненужными, поэтому я полностью их отбросил.
Есть другие предостережения; Насколько мне известно, некоторые возможности Perl (например, просмотр с изменяемой длиной) не существуют в библиотеке Boost. Так что может быть невозможно просто перевести любое регулярное выражение. Ваши примеры должны быть хорошими, хотя. Хотя некоторые из них странные. .*[0-9].*
будет соответствовать любой строке, которая где-то содержит число, а не all numbers
.