Решали подобную задачу. Проще составить пользовательскую инструкцию, чем с этим, простите, трахаться.
Было затрачено около 400 человекочасов и без особого результата.
Когда человек сталкивается с проблемой, он думает «Я могу легко решить эту проблему при помощи регулярного выражения!». С тех пор у него две проблемы...