Вы можете попробовать любой инструмент регулярных выражений, например, найденный здесь Бесплатная альтернатива RegexBuddy
Я думаю, вам не хватает скобки ( РЕДАКТИРОВАТЬ О, я неправильно скопировал его, теперь обновлен, чтобы показать ваше выражение: -))
(SA | DA | NT | DCS) (((0 [1-9] | 1 [0-9]) 9999999999 \ д {4} \ d {7}) | ([2-3] 0 ( 0 [1-9] | [1-4] [0-9] | 5 [0-2]) \ д {8} \ d {4} \ d {7}) | (4099999999 (0 [1-9 ] | 1 [0-9]) \ д {4} \ d {7}))
Вот несколько матчей, с которых можно начать
SA11999999999944447777777
DA01999999999944447777777
NT20498888888844447777777
Попробуйте Экспрессо, оно вам поможет. Он не генерирует выражения, но объясняет простым языком, что требуется.