Я вот всё никак понять не могу, почему люди упорно пытаются везде использовать регулярки, хотя есть куда более простые и более подходящие для данного случая возможности???
Например,
substr в данном случае - это то, "что доктор прописал". Ты же знаешь позиции нужных символов!
Где-то так:
$str = "12312312312";
$arr[] = substr( $str, 0, 3);
$arr[] = substr( $str, 3, 3);
$arr[] = substr( $str, 6, 3);
$arr[] = substr( $str, 9, 2);
$snils = implode( '-', $arr);
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)