c#の正規表現で RegexOptions.Multiline を使うときの注意点

http://msdn.microsoft.com/ja-jp/library/h5181w5w%28v=vs.110%29.aspx#End
「RegexOptions.Multiline」オプションを指定しても、「$」が「\r\n」にマッチしない。
これは、正規表現パターンで復帰要素 (\u+000D) が考慮されないため。 「\r?$」を利用することで行末が意図通りにマッチするようになる。ひどい罠だ。

//using System.Text.RegularExpressions;

var match1 = Regex.Match("test1\r\ntest2\r\ntest3", @"^test2$", RegexOptions.Multiline);
Console.WriteLine(match1.Success); // false

var match2 = Regex.Match("test1\r\ntest2\r\ntest3", @"^test2\r?$", RegexOptions.Multiline);
Console.WriteLine(match2.Success); // true