$re = '/(\d{1,2})(\s)(\xA0\xA0)(\s)(\d{1,7})(\s)(\w.+)(\s)(\d{1,3}\.\d{1,3}|\d)(\s)(\w\w)(\sx\s)(\d{1,3}\,\d{1,2})(\s)(\(\d{1,3}\.\d\d\))(( (0)(\s)(\d{1,3}\,\d\d)|(\s)(\n)(\xA0\xA0\xA0\xA0\sDesconto\s)([0-9]{1,3}\,[0-9]{2})(\n)(-\s[0-9]{1,2}\,[0-9]{2})))/m';
$str = '';
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