Как из строки содержащей html, вытянуть все значения атрибута нужного тега?
По какой причине не подходит Html Agility Pack? Он как раз умеет это хорошо делать.
Можно, конечно, написать регулярное выражение, но проблема с HTML  в том, что он нерегулярный. Т.е. у атрибута могут быть кавычки, могут не быть, может одна быть. Тэг может быть закрыт, а может нет.
Все это придеться учитывать в регулярном выражении.var matches = (new Regex("<form.*?action=(\"[^\\\"]+?\"|'[^\']+?'|[\\S]+?).*?>"
, RegexOptions.Singleline | RegexOptions.IgnoreCase)
).Matches("HTML CODE <form action=1><form action='2'><form action=\"3\">");
foreach(Match m in matches)
{
	var actionValue = m.Groups[1].Value.Trim(new char[]{'\'','"'});
}
Вот так к примеру: https://dotnetfiddle.net/Iuuy56
напиши пример строки....
обычно сплит подходит...