[C#]posix/perl正規表現文字クラスを .Net Frameworkの正規表現に変換

[:punct:]とかいうの。これみた↓
http://www.google.com/codesearch/p?hl=ja#DQwkZHb8l_M/Source/ClassLibrary/RegExpPosix.cs

case "alnum":
        ret = @"\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}";
        break;
case "digit":
        ret = @"\p{Nd}";
        break;
case "punct":
        ret = @"\p{P}\p{S}";
        break;
case "alpha":
        ret = @"\p{Ll}\p{Lu}\p{Lt}\p{Lo}";
        break;
case "graph":
        ret = @"\p{L}\p{M}\p{N}\p{P}\p{S}";
        break;
case "space":
        ret = @"\s";
        break;
case "blank":
        ret = @" \t";
        break;
case "lower":
        ret = @"\p{Ll}";
        break;
case "upper":
        ret = @"\p{Lu}";
        break;
case "cntrl":
        ret = @"\p{Cc}";
        break;
case "print":
        ret = @"\p{L}\p{M}\p{N}\p{P}\p{S}\p{Zs}";
        break;
case "xdigit":
        ret = @"abcdefABCDEF\d";
        break;
case "ascii":
        ret = @"\u0000-\u007F";
        break;
case "word":
        ret = @"_\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}";
        break;