$re = '/(?<metric1>(?:[\w()]+\s)+)(?<sign>[><]=?) \$(?<digit>\d+) \((?<time>[^)]+)\)(?<andor> \w+)?/';
$str = 'CPC >= $0 (Yesterday)
CPC <= $0 (Yesterday)
CPC > $0 (Yesterday)
CPC > $0 (Yesterday)
CPC (Link) > $0 (Today)
CPC (Link) > $0 (Today) and';
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