<?php
header("Content-Type: text/plain; charset=utf-8");
?> 
<?php

mb_internal_encoding("UTF-8");
$text = <<<TEXT
<b><!-- <i> это комментарий --><div class="1"><x это битый тег и он не считается

TEXT;
echo $text;
$pattern = "/(<([\w]+)[^>]*>)/";
preg_match_all($pattern, $text, $new, PREG_SET_ORDER);
foreach ($new as $k => $v) {
    print_r($new[$k][2]);
    echo "\n";
}