"/(.*?)<\/h2>/i"
Как лучше - вам виднее. Зависит от того, зачем вам их искать. Иногда лучше обойтись вообще без регулярных выражений, а добиться цели иным способом, но это зависит от конкретной задачи.
...как сделать поиск вообще всех заголовков...
Очевидно,
2
заменить на
[1-6]
:
"/(.*?)<\/h[1-6]>/i"