rule xml :i {
^
\s*
[
# Single tags like
\<
\s*
<[a-z:]>+
(?:
\s*<[a-z:]>*
\s* = \s*
(?:' <[^']>* ' | " <[^"]>* ")
)*
\s*
/\s*
\>
|
# Tags in pairs like content
\<
\s*
$1 := (<[a-z:]>+)
[
\s*<[a-z:]>*
\s* = \s*
[ ' <[^']>* ' | " <[^"]>* " ]
]*
\s*
\>
[ <[^<>]>* | ]*
\< \s* / \s* $1 \s* \>
]
\s*
}