Проблема решена:/<table\b[^\>]*\bname=(\"|')?table01\1[^\>]*>(?>([^\<]+|<(?!\/?table\b))|(<table[^\>]*>(?:(?2)|(?3)|)+?<\/table>))*<\/table>/ix
Название тега: table, можно заменить на ([a-z0-9]+), тогда будет выполнен поиск по всем тагам. Главное потом подставить эту группу в соответствующие позиции в регулярном выражении.
Название и значение атрибута («name», «table01»), можно подставлять динамически (в моем случае задаются переменными php)
Все описанные мной проблемы с парсингом вложенности большого объема — решены.
Надеюсь, кому-нибудь окажусь полезным :)