$re = '/(?P<mesini>\d{2})(?P<diaini>\d{2})(?P<horaini>\d{2})(?P<minini>\d{2})\s(?P<duracaosegundo>\d{5})\s\d{4}\s(\w{1,2}|\s)\s{5,6}\d\s(?<rota>\d{4})\s{6,13}(?<numerob>\d{8,20})\s(?<ramal>\d{4,8})\s{13,17}(?P<senha>(\d{5}|\s{5}))\s{15}\d{2}\s(?<tronco>\d{5})(?<nodetrunk>\d{4})\n/m';
$str = '06191559 00000 0000 J 1388 1616 00 1388
06191529 00241 0000 1871 1871 1019 00 007002016
06191608 00000 0000 CO 0 8985 984248885 1616 00 005003013
06191612 00109 0000 M 0 8985 37491871 1616 00 005003019
06191614 00124 0000 M 0 8985 024981105000 1616 00 005003020
06191616 00203 0000 M 0 8985 02433485083 1616 00 005003022
06191617 00020 0000 J 1388 1616 00 1388
06191618 00056 0000 T 1201 1388 00 1201
06191622 00000 0000 B 1388 1616 00 1388
06191623 00402 0000 T 0 8985 37491871 1388 00 005003025
06191636 00326 0000 L 1388 1616 00 1388
06191636 00001 0000 0 8985 984248885 1388 00 005003010
06191640 00355 0000 L 1388 1616 00 1388
06191640 00003 0000 0 8985 024981105000 1388 00 005003014
06191648 00126 0000 L 1388 1616 00 1388
06191648 00109 0000 M 0 8985 02433485083 1616 00 005003019
06191622 00000 0000 B 1388 1616 00 1388
06191623 00402 0000 T 0 8985 37491871 1388 00 005003025
06191624 00000 0000 CO 0 8985 984248885 1616 00 005003027
06191624 00000 0000 CO 0 8985 984248885 1616 00 005003028
06221129 00147 0000 M 0 8985 984248885 1388 12319 00 005003015
';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php