$re = '/^\s*\$(\d{1,3}(?:,\d{1,3})*(?:\.\d{1,2})?)\s*-\s*\$(\d{1,3}(?:,\d{1,3})*(?:\.\d{1,2})?)\s*per\s+(?:annum|hour)\s*$/m';
$str = '$80,000,000,000.00 - $90,000,000,000.00 per annum
$80,000,000 - $90,000,000 per annum
$80,000 - $90,000 per annum
$20 - $24.99 per hour
$20 - $24.99 per hour
$20 - $24.99 per hour
$20.00 - $24.99 per hour
$20.00 - $24.99 per day
$111,120.00 - $11,124.99 per week
$111,222,120.00 - $111,111,124.99 per months';
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