<imgthe literal text <img (case sensitive) \s+any whitespace character, repeated at least once
Positive Lookahead(?=[^>]*\balt="(?<alt>[^>]*?)")? ?repeats the group contents below at most once:
Negated Character Class[^>]* *matches any number of characters outside the set below:
>the literal > (6210 / 768 / 3E16)
\ban ASCII word boundary
alt="the literal text alt=" (case sensitive) Negated Character Class[^>]*? *?matches any number of characters outside the set below:
>the literal > (6210 / 768 / 3E16)
"the literal " (3410 / 428 / 2216)
Comment: optional alt attribute
Positive Lookahead(?=[^>]*\bclass="(?<class>[^>]*?)")? ?repeats the group contents below at most once:
Negated Character Class[^>]* *matches any number of characters outside the set below:
>the literal > (6210 / 768 / 3E16)
\ban ASCII word boundary
class="the literal text class=" (case sensitive) Group class(?<class>[^>]*?) Negated Character Class[^>]*? *?matches any number of characters outside the set below:
>the literal > (6210 / 768 / 3E16)
"the literal " (3410 / 428 / 2216)
Comment: optional class attribute
Positive Lookahead(?=[^>]*\bsrc="(?<src>[^>]*?)") Negated Character Class[^>]* *matches any number of characters outside the set below:
>the literal > (6210 / 768 / 3E16)
\ban ASCII word boundary
src="the literal text src=" (case sensitive) Negated Character Class[^>]*? *?matches any number of characters outside the set below:
>the literal > (6210 / 768 / 3E16)
"the literal " (3410 / 428 / 2216)
Comment: src attribute
Negated Character Class[^>]* *matches any number of characters outside the set below:
>the literal > (6210 / 768 / 3E16)
\/the literal / (4710 / 578 / 2F16)
>the literal > (6210 / 768 / 3E16)
g modifier: global. Finds all matches instead of stopping after the first
x modifier: extended. Ignores unescaped whitespace and comments outside character classes