geniousperson, зря не хотите. На одном проекте регулярка в 10+ раз медленнее работало, и не всегда укладывалась в таймаут. С DOMDocument таких проблем не было, даже если парсить несколько страниц.
А по вашей регулярке возьмите class=\"(.+?)\" в скобки и за скобками поставьте вопрос - типа необязательный параметр: ( class=\"(.+?)\")?