Я так вытаскиваю name и subname:
Код:
<div class="text">(?:(?!<h1>).+?)<h1>\s*((?!<^;|</h1>).+?)\s*(?:<^;((?!>^;).+?)>^;)?<
Далее надо только сделать замены символов и обрезать пробелы по краям.
Пишу на Parser 3.4.1, поэтому спецсимволы экранирую символом ^