$re = '/(?:194 Temperature[^(\n]+|Airflow_Temperature[^(\n]+|Drive Temperature:|Temperature:) +([0-9]+)/m';
$str = 'WD: 194 Temperature_Celsius 0x0022 105 100 000 Old_age Always - 42
Seagate: 194 Temperature_Celsius 0x0022 034 053 000 Old_age Always - 34 (0 16 0 0 0)
Toshiba: 194 Temperature_Celsius 0x0002 122 122 000 Old_age Always - 49 (Min/Max 15/57)';
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