$re = '/^(?P<mounting_type>Z)(?P<number_of_function>1)(?P<unit_type>S)(?P<unit_size>10)(?P<function_in_port>A|B|P|TA|TB)(?P<cracking_pressure>00|05|30|50)(?P<sep_1>-)(?P<mounting_position>1|2)(?P<orific_position_1>D|)(?P<orific_diameter_1>05|10|15|)(?P<function_in_port_2>B|P|TA|TB|)(?P<cracking_pressure_rv2>00|05|30|50|)(?P<sep_2>-|)(?P<mounting_position_rv2>1|2|)(?P<orific_position_2>D|)(?P<orific_diameter_2>05|10|15|)(?P<function_in_port_3>TA9|TB9|)(?P<sep_3>-)(?P<unit_series>4X)(?P<sep_4>/)(?P<seal_material>F|N)(?P<sep_5>/|)(?P<control_volume_flow>XY|)(?P<inspection_port>MA|MB|MP|MTA|)(?P<inspection_port_position>A|B|)(?P<surface_coating>J3|)(?P<sep_6>-|)(?P<special_version>068|120|)(?P<additional_details>(.|[0-9])*)$
/m';
$str = 'Z1S10TA30-2TB9-4X/F
Z1S10TA50-2TB9-4X/F
Z1S10A30-2-4X/F
Z1S10A50-2-4X/F
Z1S10B30-2-4X/F
Z1S10A30-1-4X/F
Z1S10P30-1-4X/F
Z1S10P50-1-4X/F
Z1S10A30-2B30-2-4X/F
Z1S10A50-2B50-2-4X/F
Z1S10P30-1TA30-2TB9-4X/F
Z1S10P05-1-4X/F/MPB-068
Z1S10P05-1-4X/F/XY
Z1S10A05-1-4X/F/XY
Z1S10P05-1-4X/F
Z1S10TA05-2TB9-4X/F
Z1S10A05-2-4X/F
Z1S10A05-1-4X/F
Z1S10B05-1-4X/F
Z1S10B05-2-4X/F
Z1S10A05-2B05-2-4X/F
Z1S10P05-1TA05-2TB9-4X/F
Z1S10TA05-2TB9-4X/N
Z1S10TA50-2TB9-4X/N
Z1S10TA05-2TB05-2-4X/F/XY
Z1S10P05-1-4X/F/MPB
Z1S10P05-2-4X/F
Z1S10TA50-2TB9-4X/F-120
Z1S10A50-1-4X/F
Z1S10B30-1-4X/F
Z1S10B50-1-4X/F
Z1S10B50-2-4X/F
Z1S10P05-1TA50-2TB9-4X/F
Z1S10P30-1-4X/F/MPB-068
Z1S10P05-1-4X/N
Z1S10P50-1TA50-2TB9-4X/F
Z1S10P50-1-4X/F/XY
Z1S10TA05-2TB9-4X/F-120
Z1S10A05-2B05-2TB9-4X/F
Z1S10TA30-2TB9-4X/F-120
Z1S10P00-1-4X/F
Z1S10TB30-2-4X/F
Z1S10P00-1-4X/F/MPB-068
Z1S10TA05-2TB30-2-4X/N
Z1S10TA30-2TB30-2-4X/N
Z1S10TA30-2TB30-2-4X/F
Z1S10TA50-2TB50-2-4X/F
Z1S10P05-1TA05-2TB9-4X/N
Z1S10B05-2-4X/F/XY
Z1S10P30-1-4X/F/XY
Z1S10TA50-2TB50-2-4X/F/XY
Z1S10TA05-2TB05-2-4X/F
Z1S10P30-1-4X/F/J3
Z1S10P05-1TA05-2-4X/F/XY
Z1S10A05-2B05-2-4X/F/XY
Z1S10A30-2-4X/N
Z1S10TA00-2TB9-4X/F/J3
Z1S10P05-1TA30-2TB9-4X/F/J3
Z1S10B05-1-4X/N
Z1S10A05-2-4X/N
Z1S10B05-2-4X/N
Z1S10P50-1-4X/N
Z1S10TA30-2TB9-4X/N
Z1S10B05-1D15-4X/F
Z1S10TA05-2TB9-4X/F/J3
Z1S10TA05-2-4X/F
Z1S10TB05-1-4X/F/XY
Z1S10TA05-1-4X/F/XY
Z1S10P05-2-4X/F/XY
Z1S10P00-1-4X/F/MPB
Z1S10B00-2-4X/F
Z1S10TA00-2TB00-2-4X/F
Z1S10B00-1-4X/F
Z1S10TA50-2TB50-2-4X/N
Z1S10B05-1-4X/F/XY
Z1S10A00-2B00-2-4X/F
Z1S10TB05-2-4X/F
';
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