Я думаю, это потому, что вы пытаетесь сделать перл-слэш в передней и в конце. Несколько других ответчиков были смущены этим уже. Так, как он это написал, он пытается сделать регистронезависимым, начиная и заканчивая / и заканчивая символом i в конце, как вы это делаете в perl.
Но я почти уверен, что регулярные выражения .NET не работают таким образом, и это является причиной проблемы.
Редактировать: чтобы быть более конкретным, посмотрите на RegexOptions, пример, который я извлек из MSDN, выглядит так:
Dim rx As New Regex("\b(?<word>\w+)\s+(\k<word>)\b", RegexOptions.Compiled Or RegexOptions.IgnoreCase)
Ключом здесь является "RegexOptions.IgnoreCase", который вызовет эффект, который вы пытались использовать с /pattern/i.
.