Encontrar etiquetas HTML en cadena

Sé que esta pregunta está alrededor de SO, pero no puedo encontrar la correcta y aún apesto en Regex: /

Yo tengo unstring y esa cadena es HTML válido. Ahora quiero encontrar todas las etiquetas con un ciertoname yattribute.

Probé esta expresión regular (es decir, div con tipo):/(<div type="my_special_type" src="(.*?)<\/div>)/.

Cadena de ejemplo:

<div>Do not match me</div>
<div type="special_type" src="bla"> match me</div>
<a>not me</a>
<div src="blaw" type="special_type" > match me too</div>

Si uso preg_match solo obtengo<div type="special_type" src="bla"> match me</div> lo que es lógico porque el otro tiene los atributos en un orden diferente.

¿Qué regex necesito para obtener lo siguiente?array cuando usaspreg_match en la cadena de ejemplo ?:

array(0 => '<div type="special_type" src="bla"> match me</div>',
      1 => '<div src="blaw" type="special_type" > match me too</div>')

Respuestas a la pregunta(2)

Su respuesta a la pregunta