Diagramma di riferimento delle espressioni regolari dello schema XML

Nel diagramma che segue vengono illustrate le relazioni presenti nelle espressioni regolari dello schema XML.

regExp :: = branch ('|' branch) *
branch :: = piece*
piece :: = atomquantifier?
quantifier :: = [?*+] | ('{'quantity'}')
quantity :: = quantRange | quantMin | QuantExactquantRange :: = QuantExact ',' QuantExactquantMin :: = QuantExact ','
QuantExact :: = [0-9]+
atom :: = Char | charClass | ('(' regExp ')')
Char :: = [^.\?*+()|#x5B#x5D]
charClass ::= charClassEsc | charClassExprcharClassExpr ::= '[' charGroup ']'
charGroup ::= posCharGroup | negCharGroup | charClassSubposCharGroup ::= ( charRange | charClassEsc ) +
negCharGroup ::= '^' posCharGroupcharClassSub ::= ( posCharGroup | negCharGroup ) '-' charClassExprcharRange ::= seRange | XmlCharRef | XmlCharIncDashseRange ::= charOrEsc '-' charOrEscXmlCharRef ::= ( '&#' [0-9]+ ';' ) | ('&#x' [0-9a-fA-F]+ ';' )
charOrEsc ::= XmlChar | SingleCharEscXmlChar ::= [^\#x2D#x5B#x5D]
XmlCharIncDash ::= [^\#x5B#x5D]

charClassEsc ::= ( SingleCharEsc | MultiCharEsc | catEsc | complEsc )
SingleCharEsc ::= '\' [nrt\|.?*+(){} #x2Dx5B#X5D#x5E]
catEsc ::= '\p'{' charProp '}'
complEsc ::= '\P{' charProp '}'
charProp ::= IsCategory | IsBlockIsCategory ::= Letters | Marks | Numbers | Punctuation | Separators | 
Symbols | OthersLetters ::= 'L' [ultmo]?
Marks ::= 'M' [nce]?
Numbers ::= 'N' [dlo]?
Punctuation ::= 'P' [cdseifo]?
Separators ::= 'Z' [slp]?
Symbols ::= 'S' [mcko]?
Others ::= 'O' [cfon]?
IsBlock ::= 'Is' [a-zA-Z0-9#x2D]+
MultiCharEsc::='.' | ('\' [sSiIcCdDwW]) 

Vedere anche

Espressioni regolari dello schema XML