.NETでメール本文から各要素を正規表現で抜くのにハマってしまった

.NETでプログラム作っています。
メールを受信して、FromやSubjectなどを正規表現でマッチさせます。 末尾を指定するのがPerlやPHPと違っていて少々ハマってしまいました。 ググったところによると、末尾には改行コードが入って、「\r?$」になるとのことでした。 つまり、件名を取り出すには

^Subject: (.*)$

じゃなくて

^Subject: (.*)\r?$

同様に、

^From: (.*)\r?$
^To: (.*)\r?$
^Date: (.*)\r?$

メール本文は、これが難しい。 「空行に続いて、ピリオド一つだけの行まで」だから、「^$^(.+)^\.$」かと思ったら、

\r?\n\r?\n(.+)\r?\n\.\r?\n"

だった。 変態的ですね。