Escaping characters in CSS2

In the general CSS tokenization rules [1] in CSS2, an escape is written
as "{unicode}|\\[ -~\200-\4177777]" (where unicode is "\\[0-9a-f]{1,6}[
\n\r\t\f]?").  However, in the text [2], it says that

  Any character (except a hexadecimal digit) can be escaped with a
  backslash to remove its special meaning.

This makes me think that the definition of escape should instead be:

  {unicode}|\\[ -/:-@G-`g-~\200-\417777]

which does not allow hexadecimal digits [0-9a-zA-Z] to be escaped.  The
same exact thing occurs in Appendix D.2 [3].

However, I don't know much about flex notation, so perhaps the first
things that can match will (or something like that).  Is that true
(in which case this isn't a problem)?  It might be clearer the above
way anyway.

David Baron

[1] http://www.w3.org/TR/REC-CSS2/syndata.html#tokenization
[2] http://www.w3.org/TR/REC-CSS2/syndata.html#q4
[3] http://www.w3.org/TR/REC-CSS2/grammar.html#q2

Received on Saturday, 6 March 1999 14:31:39 UTC