Fixed excessive pattern and enhanced to support negative ranges

Спасибо, я как раз искал такой алгоритм для моего ASP.NET MVC поекта. Я перевел Ваш код на C#, исправил и расширил. Решил, что это может быть Вам полезно тоже.