Regex special character "^" and "$" don't have the same meaning when the input string is single-line or multi-line.
In single line the mean "string start" and "string end".
In multi-line they mean "line start" and "line end".
You have a option in RegexOptions to control this : RegexOptions.Multiline
And the documentation clearly states what it does :
"Multiline mode. Changes the meaning of ^ and $ so they match at the beginning and end, respectively, of any line, and not just the beginning and end of the entire string."
from http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions.aspx