$re = '/\((.*)[\*\)?]/U';
$str = '1-3:0.2.8(42)
0-0:1.0.0(160615075410S)
0-0:96.1.1(4530303034303031353038323431303133)
1-0:1.8.1(004778.237*kWh)
1-0:2.8.1(000000.000*kWh)
1-0:1.8.2(001579.915*kWh)
1-0:2.8.2(000000.000*kWh)
0-0:96.14.0(0002)
1-0:1.7.0(00.265*kW)
1-0:2.7.0(00.000*kW)
0-0:96.7.21(00002)
0-0:96.7.9(00001)
1-0:99.97.0(1)(0-0:96.7.19)(151125043910W)(0048354692*s)
1-0:32.32.0(00000)
1-0:32.36.0(00000)
0-0:96.13.1()
0-0:96.13.0()
1-0:31.7.0(002*A)
1-0:21.7.0(00.265*kW)
1-0:22.7.0(00.000*kW)
0-1:24.1.0(003)
0-1:96.1.0(4730303136353631323035393231393134)
0-1:24.2.1(160615070000S)(00251.225*m3)';
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