В этой части: [a-zA-Z0-9_\-.]
вы избегаете дефиса. Правильный способ поставить дефис в класс символов регулярных выражений - это первая позиция (или она считает, что это часть диапазона):
[-a-zA-Z0-9_.]
Затем вы удалили обратную косую черту до @. В Perl символ @ будет восприниматься как часть имени списка, но в C # я не уверен, какой эффект он может не допустить.
Бегство от периодов также подозрительно. Возможно, вам придется удвоить их: например, \\
. Вместо этого, то, что я бы сделал для точки, - это использование класса символов: то есть [.] Внутри класса символов период теряет свое особое значение.
Попробуйте это:
@"([-a-zA-Z0-9_.]+)\@((base[.]co[.]uk)|(base[.]com)|(group[.]com)|(arg[.]co[.]uk)|(arggroup[.]com))"