My effort would be along different lines:
<img(\s+((\w+) (=("[^"]"|[^\s>]+)|)))*/?>
with the 'ignore case' option set as a safety measure in case someone used "<IMG" at the start.
This
pattern will accept any number of attributes within the tag and an
option "/>" or ">" tag ending. Each attribute optionally can be
followed by an '=' and a value which can be a quoted string (without
escaped or doubled double quotes) or any string of non-whitespace
characters.
Each capture of match group #2 (you said you
were using .NET so captures are available to you) will contain each
attribute and its value as a whole. The match group #3 captures will
contain just the attribute names in the order they appear and the
captures of match group #4 will contain the values (or NULL if the
attribute has no value associated with it).
You will need to scan
the captures of match group #3 for the attributes you are interested in
and then look at the corresponding capture in match group #4 for any
possible value.