I am reading the XML specification and I can't quite understand this rule:
CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
Here's what I think I understand:
[^<&]*
- Any amount of optional characters that are not <
or &
-
Except if it matches
([^<&]*
Anything that's not <
or &
']]>'
followed by ]]>
[^<&]*)
followed by anything that's not <
or &