$re = '/[Ss][Ll][Nn]\s+\d+\s+[Gg][Rr][Pp]\s+\d+\s+[S][T][Y][P]\s+[\'][T][Z][\']\s+[Ss][Nn][Oo]\s+\d+\s+/m';
$str = 'SLN 4 GRP 662 STYP \'TZ\' SNO 1037 DRX -3.41018E-15 2.25685E-15 -1 XFLG \'PLA\'
SLNB X1 -71629.6763 -89524.0401 34193.7197 X2 -70145.9264 -91487.9275 34193.7197
SLN 6 GRP 662 STYP \'TZ\' SNO 1037 DRX -3.41018E-15 2.25685E-15 -1 XFLG \'PLA\'
SLNB X1 -68645.9265 -89524.0401 34193.7197 X2 -67145.9265 -91487.9275 34193.7197
SLN 8 GRP 662 STYP \'TZ\' SNO 1037 DRX -3.41018E-15 2.25685E-15 -1 XFLG \'PLA\'
SLNB X1 -65780.9266 -89524.0401 34193.7197 X2 -64280.9267 -91487.9275 34193.7197
SLN 10 GRP 662 STYP \'TZ\' SNO 1037 DRX -3.41018E-15 2.25685E-15 -1 XFLG \'PLA\'
SLNB X1 -62780.9267 -89524.0401 34193.7197 X2 -61280.9268 -91487.9275 34193.7197
SLN 12 GRP 662 STYP \'TZ\' SNO 1037 DRX 3.41018E-15 2.25685E-15 -1 XFLG \'PLA\'
SLNB X1 -74597.1762 -89524.0401 34193.7197 X2 -76080.9261 -91487.9275 34193.7197
SLN 15 GRP 662 STYP \'TZ\' SNO 1037 DRX -0.218907 0.519243 -0.826115 XFLG \'PLA\'
SLNB X1 -71629.6763 -95007.3548 31588.4632 X2 -73113.4262 -91487.9275 34193.7197
SLN 16 GRP 662 STYP \'TZ\' SNO 1037 DRX 0.218907 0.519243 -0.826115 XFLG \'PLA\'
SLNB X1 -70145.9264 -91487.9275 34193.7197 X2 -71629.6763 -95007.3548 31588.4632
SLN 17 GRP 662 STYP \'TZ\' SNO 1037 DRX -0.215802 0.515972 -0.828976 XFLG \'PLA\'
SLNB X1 -68645.9265 -95074.3499 31570.9694 X2 -70145.9264 -91487.9275 34193.7197
SLN 18 GRP 662 STYP \'TZ\' SNO 1037 DRX 0.215802 0.515972 -0.828976 XFLG \'PLA\'
SL';
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