$re = '/(?:\s(?:[^\'"/\s><]+?)[\s/>])|(?:\S+(?:\s*=\s*(?:(?:([\'"])[\s\S]*?\1|([^\s>]+))|(?:[^\'"\s>]+))))/';
$str = ' <div
blah lorem
foo-bar
multi-line="
foo
bar
"
bar=" asdf"
bar= zxcv
foo=asdf
aa=df-bar=()
a-b=df-b"ar=()
ac=df"-bar=()
ad=df-bar=()
></div>
';
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