.NET4.5
input = "abc123def$456ghi" (注 文字列、数字列ともランダムとします)
において、先頭に$がない数字列を検出したく(123だけを検出したい)
pattern = "(?\<!\$)\d+"
で行うと、"123" , "56" となってしまいます。

どなたか、解法がわかるかた教えてください。
また、正規表現だけでは無理だという回答でもいただけるとありがたいです。