The trick is non-greedy evaluation: (.*?)
class Program
{
static void Main(string[] args)
{
string strInput = @"<a href='someurl.html'><b>need to capture this text</b></a>between '.html'><b>' and '</b></a>";
var objMatch = Regex.Match(strInput, @"<a\s+href=[\s\S]*?><b>([\s\S]*?)</b></a>");
if (objMatch.Success)
{
Console.WriteLine("Match: {0}", objMatch.Groups[1].Value);
}
}
}
Cheers
Andi