[html5] r7490 - [e] (0) Use some new predefined terms for common character ranges. Fixing https: [...]

whatwg at whatwg.org whatwg at whatwg.org
Tue Oct 30 15:15:49 PDT 2012


Author: ianh
Date: 2012-10-30 15:15:48 -0700 (Tue, 30 Oct 2012)
New Revision: 7490

Modified:
   complete.html
   index
   source
Log:
[e] (0) Use some new predefined terms for common character ranges.
Fixing https://www.w3.org/Bugs/Public/show_bug.cgi?id=18670
Affected topics: Canvas, DOM APIs, HTML, HTML Syntax and Parsing, Microdata, Rendering, Server-Sent Events, Video Text Tracks

Modified: complete.html
===================================================================
--- complete.html	2012-10-30 00:03:15 UTC (rev 7489)
+++ complete.html	2012-10-30 22:15:48 UTC (rev 7490)
@@ -4775,13 +4775,31 @@
   <p class=note>This should not be confused with the "White_Space"
   value (abbreviated "WS") of the "Bidi_Class" property in the <code title="">Unicode.txt</code> data file.</p>
 
-  <div class=impl>
+  <p>The <dfn id=uppercase-ascii-letters>uppercase ASCII letters</dfn> are the characters in the range U+0041 LATIN CAPITAL
+  LETTER A to U+005A LATIN CAPITAL LETTER Z.</p>
 
-  <p>The <dfn id=alphanumeric-ascii-characters>alphanumeric ASCII characters</dfn> are those in the
-  ranges U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0041 LATIN
-  CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z, U+0061 LATIN
-  SMALL LETTER A to U+007A LATIN SMALL LETTER Z.</p>
+  <p>The <dfn id=lowercase-ascii-letters>lowercase ASCII letters</dfn> are the characters in the range U+0061 LATIN SMALL
+  LETTER A to U+007A LATIN SMALL LETTER Z.</p>
 
+  <p>The <dfn id=ascii-digits>ASCII digits</dfn> are the characters in the range U+0030 DIGIT ZERO (0) to U+0039
+  DIGIT NINE (9).</p>
+
+  <p>The <dfn id=alphanumeric-ascii-characters>alphanumeric ASCII characters</dfn> are those that are either <a href=#uppercase-ascii-letters>uppercase ASCII
+  letters</a>, <a href=#lowercase-ascii-letters>lowercase ASCII letters</a>, or <a href=#ascii-digits>ASCII digits</a>.</p>
+
+  <p>The <dfn id=ascii-hex-digits>ASCII hex digits</dfn> are the characters in the ranges U+0030 DIGIT ZERO (0) to
+  U+0039 DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F, and U+0061
+  LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F.</p>
+
+  <p>The <dfn id=uppercase-ascii-hex-digits>uppercase ASCII hex digits</dfn> are the characters in the ranges U+0030 DIGIT ZERO (0) to
+  U+0039 DIGIT NINE (9) and U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F only.</p>
+
+  <p>The <dfn id=lowercase-ascii-hex-digits>lowercase ASCII hex digits</dfn> are the characters in the ranges U+0030 DIGIT ZERO
+  (0) to U+0039 DIGIT NINE (9) and U+0061 LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F
+  only.</p>
+
+  <div class=impl>
+
   <p>Some of the micro-parsers described below follow the pattern of
   having an <var title="">input</var> variable that holds the string
   being parsed, and having a <var title="">position</var> variable
@@ -4931,10 +4949,8 @@
 
   <h5 id=signed-integers><span class=secno>2.5.4.1 </span>Signed integers</h5>
 
-  <p>A string is a <dfn id=valid-integer>valid integer</dfn> if it consists of one or
-  more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-  NINE (9), optionally prefixed with a U+002D HYPHEN-MINUS character
-  (-).</p>
+  <p>A string is a <dfn id=valid-integer>valid integer</dfn> if it consists of one or more <a href=#ascii-digits>ASCII digits</a>,
+  optionally prefixed with a U+002D HYPHEN-MINUS character (-).</p>
 
   <p>A <a href=#valid-integer>valid integer</a> without a U+002D HYPHEN-MINUS (-)
   prefix represents the number that is represented in base ten by that
@@ -4986,17 +5002,16 @@
 
     </ol></li>
 
-   <li><p>If the character indicated by <var title="">position</var>
-   is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
-   return an error.</li>
+   <li><p>If the character indicated by <var title="">position</var> is not an <a href=#ascii-digits title="ASCII
+   digits">ASCII digit</a>, then return an error.</li>
 
    <!-- Ok. At this point we know we have a number. It might have
    trailing garbage which we'll ignore, but it's a number, and we
    won't return an error. -->
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
-   resulting sequence as a base-ten integer. Let <var title="">value</var> be that integer.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>, and
+   interpret the resulting sequence as a base-ten integer. Let <var title="">value</var> be that
+   integer.</li>
 
    <li><p>If <var title="">sign</var> is "positive", return <var title="">value</var>, otherwise return the result of subtracting
    <var title="">value</var> from zero.</li>
@@ -5007,8 +5022,7 @@
   <h5 id=non-negative-integers><span class=secno>2.5.4.2 </span>Non-negative integers</h5>
 
   <p>A string is a <dfn id=valid-non-negative-integer>valid non-negative integer</dfn> if it
-  consists of one or more characters in the range U+0030 DIGIT ZERO
-  (0) to U+0039 DIGIT NINE (9).</p>
+  consists of one or more <a href=#ascii-digits>ASCII digits</a>.</p>
 
   <p>A <a href=#valid-non-negative-integer>valid non-negative integer</a> represents the number
   that is represented in base ten by that string of digits.</p>
@@ -5047,15 +5061,13 @@
 
    <li>One or both of the following, in the given order:
 
-    <ol><li>A series of one or more characters in the range U+0030 DIGIT
-     ZERO (0) to U+0039 DIGIT NINE (9).</li>
+    <ol><li>A series of one or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>
 
       <ol><li>A single U+002E FULL STOP character (.).</li>
 
-       <li>A series of one or more characters in the range U+0030 DIGIT
-       ZERO (0) to U+0039 DIGIT NINE (9).</li>
+       <li>A series of one or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
       </ol></li>
 
@@ -5069,8 +5081,7 @@
      <li>Optionally, a U+002D HYPHEN-MINUS character (-) or U+002B
      PLUS SIGN character (+).</li>
 
-     <li>A series of one or more characters in the range U+0030 DIGIT
-     ZERO (0) to U+0039 DIGIT NINE (9).</li>
+     <li>A series of one or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
     </ol></li>
 
@@ -5147,21 +5158,19 @@
 
     </ol></li>
 
-   <li><p>If the character indicated by <var title="">position</var>
-   is a U+002E FULL STOP (.), and that is not the last character in
-   <var title="">input</var>, and the character after the character
-   indicated by <var title="">position</var> is one of U+0030 DIGIT
-   ZERO (0) to U+0039 DIGIT NINE (9), then set <var title="">value</var> to zero and jump to the step labeled
-   <i>fraction</i>.</p> <!-- we have to check there's a number so that
-   ".e1" fails to parse but ".0" does not -->
+   <li><p>If the character indicated by <var title="">position</var> is a U+002E FULL STOP (.), and
+   that is not the last character in <var title="">input</var>, and the character after the
+   character indicated by <var title="">position</var> is an <a href=#ascii-digits title="ASCII digits">ASCII
+   digit</a>, then set <var title="">value</var> to zero and jump to the step labeled
+   <i>fraction</i>.</p> <!-- we have to check there's a number so that ".e1" fails to parse but ".0"
+   does not -->
 
-   <li><p>If the character indicated by <var title="">position</var>
-   is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
-   return an error.</li>
+   <li><p>If the character indicated by <var title="">position</var> is not an <a href=#ascii-digits title="ASCII
+   digits">ASCII digit</a>, then return an error.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
-   resulting sequence as a base-ten integer. Multiply <var title="">value</var> by that integer.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>, and
+   interpret the resulting sequence as a base-ten integer. Multiply <var title="">value</var> by
+   that integer.</li>
 
    <li>If <var title="">position</var> is past the end of <var title="">input</var>, jump to the step labeled
    <i>conversion</i>.</li>
@@ -5172,10 +5181,10 @@
     <ol><li><p>Advance <var title="">position</var> to the next
      character.</li>
 
-     <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, or if the character indicated by <var title="">position</var> is not one of U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9), U+0065 LATIN SMALL LETTER E (e), or U+0045
-     LATIN CAPITAL LETTER E (E), then jump to the step labeled
-     <i>conversion</i>.</li>
+     <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, or if the
+     character indicated by <var title="">position</var> is not an <a href=#ascii-digits title="ASCII digits">ASCII
+     digit</a>, U+0065 LATIN SMALL LETTER E (e), or U+0045 LATIN CAPITAL LETTER E (E), then jump
+     to the step labeled <i>conversion</i>.</li>
 
      <li><p>If the character indicated by <var title="">position</var>
      is a U+0065 LATIN SMALL LETTER E character (e) or a U+0045 LATIN
@@ -5194,9 +5203,8 @@
      <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then jump to the step labeled
      <i>conversion</i>.</li>
 
-     <li><p>If the character indicated by <var title="">position</var>
-     is one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), jump
-     back to the step labeled <i>fraction loop</i> in these
+     <li><p>If the character indicated by <var title="">position</var> is an <a href=#ascii-digits title="ASCII
+     digits">ASCII digit</a>, jump back to the step labeled <i>fraction loop</i> in these
      substeps.</li>
 
     </ol></li>
@@ -5234,13 +5242,12 @@
 
       </ol></li>
 
-     <li><p>If the character indicated by <var title="">position</var>
-     is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
-     then jump to the step labeled <i>conversion</i>.</li>
+     <li><p>If the character indicated by <var title="">position</var> is not an <a href=#ascii-digits title="ASCII
+     digits">ASCII digit</a>, then jump to the step labeled <i>conversion</i>.</li>
 
-     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-     U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
-     resulting sequence as a base-ten integer. Multiply <var title="">exponent</var> by that integer.</li>
+     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>, and
+     interpret the resulting sequence as a base-ten integer. Multiply <var title="">exponent</var>
+     by that integer.</li>
 
      <li><p>Multiply <var title="">value</var> by ten raised to the
      <var title="">exponent</var>th power.</li>
@@ -5267,13 +5274,10 @@
 <div class=impl>
   <h5 id=percentages-and-dimensions><span class=secno>2.5.4.4 </span>Percentages and lengths</h5>
 <!--(percentages are not used in valid html anymore)
-  <p>A string is a <dfn>valid dimension value</dfn> if it consists of
-  a character in the range U+0031 DIGIT ONE (1) to U+0039 DIGIT NINE
-  (9), optionally followed by zero of more characters in the range
-  U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), optionally followed
-  by a U+002E FULL STOP character (.) and one or more characters in
-  the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and
-  optionally suffixed by a U+0025 PERCENT SIGN character (%).</p>
+  <p>A string is a <dfn>valid dimension value</dfn> if it consists of a character in the range
+  U+0031 DIGIT ONE (1) to U+0039 DIGIT NINE (9), optionally followed by zero of more <span>ASCII
+  digits</span>, optionally followed by a U+002E FULL STOP character (.) and one or more <span>ASCII
+  digits</span>, and optionally suffixed by a U+0025 PERCENT SIGN character (%).</p>
 
   <p>A <span>valid dimension value</span> represents the number that
   is represented in base ten by that string of digits, optionally with
@@ -5317,9 +5321,9 @@
    trailing garbage which we'll ignore, but it's a number, and we
    won't return an error. -->
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
-   resulting sequence as a base-ten integer. Let <var title="">value</var> be that number.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>, and
+   interpret the resulting sequence as a base-ten integer. Let <var title="">value</var> be that
+   number.</li>
 
    <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, return <var title="">value</var> as a
    length.</li>
@@ -5332,9 +5336,9 @@
     <ol><li><p>Advance <var title="">position</var> to the next
      character.</li>
 
-     <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, or if the character indicated by <var title="">position</var> is not one of U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9), then return <var title="">value</var> as a
-     length.</li>
+     <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, or if the
+     character indicated by <var title="">position</var> is not an <a href=#ascii-digits title="ASCII digits">ASCII
+     digit</a>, then return <var title="">value</var> as a length.</li>
 
      <li><p>Let <var title="">divisor</var> have the value 1.</li>
 
@@ -5351,7 +5355,7 @@
      length.</li>
 
      <li><p>If the character indicated by <var title="">position</var>
-     is one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), return
+     is an <a href=#ascii-digits title="ASCII digits">ASCII digit</a>, return
      to the step labeled <i>fraction loop</i> in these
      substeps.</li>
 
@@ -5443,10 +5447,8 @@
 
       </ol></dd>
 
+     <dt>An <a href=#ascii-digits title="ASCII digits">ASCII digit</a></dt>
 
-     <dt>A character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9)</dt>
-
      <dd>
 
       <p>Follow these substeps:</p>
@@ -5678,22 +5680,18 @@
      <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, set <var title="">unit</var> to
      <i>relative</i> and jump to the last substep.</li>
 
-     <li><p>If the character at <var title="">position</var> is a
-     character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE
-     (9), <a href=#collect-a-sequence-of-characters>collect a sequence of characters</a> in the range
-     U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), interpret the
-     resulting sequence as an integer in base ten, and increment <var title="">value</var> by that integer.</li>
+     <li><p>If the character at <var title="">position</var> is an <a href=#ascii-digits title="ASCII digits">ASCII
+     digit</a>, <a href=#collect-a-sequence-of-characters>collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>,
+     interpret the resulting sequence as an integer in base ten, and increment <var title="">value</var> by that integer.</li>
 
      <li>
 
       <p>If the character at <var title="">position</var> is a U+002E
       FULL STOP character (.), run these substeps:</p>
 
-      <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> consisting
-       of <a href=#space-character title="space character">space characters</a> and
-       characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-       NINE (9). Let <var title="">s</var> be the resulting
-       sequence.</li>
+      <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> consisting of <a href=#space-character title="space
+       character">space characters</a> and <a href=#ascii-digits>ASCII digits</a>. Let <var title="">s</var>
+       be the resulting sequence.</li>
 
        <li><p>Remove all <a href=#space-character title="space character">space
        characters</a> in <var title="">s</var>.</li>
@@ -5752,10 +5750,8 @@
   <em>28</em> otherwise. This takes into account leap years in the
   Gregorian calendar. <a href=#refsGREGORIAN>[GREGORIAN]</a></p>
 
-  <p>The <dfn id=concept-datetime-digit title=concept-datetime-digit>digits</dfn> in the date
-  and time syntaxes defined in this section must be characters in the
-  range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), used to
-  express numbers in base ten.</p>
+  <p>When <a href=#ascii-digits>ASCII digits</a> are used in the date and time syntaxes defined in this section,
+  they express numbers in base ten.</p>
 
   <div class=impl>
 
@@ -5780,12 +5776,11 @@
   <var title="">year</var> and month <var title="">month</var> if it
   consists of the following components in the given order:</p>
 
-  <ol><li>Four or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing <var title="">year</var>, where <var title="">year</var> > 0</li>
+  <ol><li>Four or more <a href=#ascii-digits>ASCII digits</a>, representing <var title="">year</var>, where <var title="">year</var> > 0</li>
 
    <li>A U+002D HYPHEN-MINUS character (-)</li>
 
-   <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing the month <var title="">month</var>, in the range
+   <li>Two <a href=#ascii-digits>ASCII digits</a>, representing the month <var title="">month</var>, in the range
    1 ≤ <var title="">month</var> ≤ 12</li>
 
   </ol><div class=impl>
@@ -5814,11 +5809,9 @@
   nothing. If at any point the algorithm says that it "fails", this
   means that it is aborted at that point and returns nothing.</p>
 
-  <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not at least four characters long, then
-   fail. Otherwise, interpret the resulting sequence as a base-ten
-   integer. Let that number be the <var title="">year</var>.</li>
+  <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not at least four characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">year</var>.</li>
 
    <li><p>If <var title="">year</var> is not a number greater than
    zero, then fail.</li>
@@ -5827,11 +5820,9 @@
    then fail. Otherwise, move <var title="">position</var> forwards
    one character.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">month</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">month</var>.</li>
 
    <li><p>If <var title="">month</var> is not a number in the range
    1 ≤ <var title="">month</var> ≤ 12, then
@@ -5857,10 +5848,9 @@
 
    <li>A U+002D HYPHEN-MINUS character (-)</li>
 
-   <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing <var title="">day</var>, in the range
-   1 ≤ <var title="">day</var> ≤ <var title="">maxday</var> where <var title="">maxday</var> is the <a href=#number-of-days-in-month-month-of-year-year title="number of days in month month of year year">number of days
-   in the month <var title="">month</var> and year <var title="">year</var></a></li>
+   <li>Two <a href=#ascii-digits>ASCII digits</a>, representing <var title="">day</var>, in the range
+   1 ≤ <var title="">day</var> ≤ <var title="">maxday</var> where <var title="">maxday</var> is the <a href=#number-of-days-in-month-month-of-year-year title="number of days in month month of year year">number of
+   days in the month <var title="">month</var> and year <var title="">year</var></a></li>
 
   </ol><div class=impl>
 
@@ -5899,11 +5889,9 @@
    then fail. Otherwise, move <var title="">position</var> forwards
    one character.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">day</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">day</var>.</li>
 
    <li><p>If <var title="">day</var> is not a number in the range
    1 ≤ <var title="">day</var> ≤ <var title="">maxday</var>, then fail.</li>
@@ -5926,17 +5914,15 @@
 
   <ol><li>Optionally, two U+002D HYPHEN-MINUS characters (-)</li>
 
-   <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing the month <var title="">month</var>, in the range
+   <li>Two <a href=#ascii-digits>ASCII digits</a>, representing the month <var title="">month</var>, in the range
    1 ≤ <var title="">month</var> ≤ 12</li>
 
    <li>A U+002D HYPHEN-MINUS character (-)</li>
 
-   <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing <var title="">day</var>, in the range
+   <li>Two <a href=#ascii-digits>ASCII digits</a>, representing <var title="">day</var>, in the range
    1 ≤ <var title="">day</var> ≤ <var title="">maxday</var> where <var title="">maxday</var> is the <a href=#number-of-days-in-month-month-of-year-year title="number of days in month month of year year">number of
-   days</a> in the month <var title="">month</var> and any
-   arbitrary leap year (e.g. 4 or 2000)</li>
+   days</a> in the month <var title="">month</var> and any arbitrary leap year (e.g. 4 or
+   2000)</li>
 
   </ol><p class=note>In other words, if the <var title="">month</var> is
   "<code title="">02</code>", meaning February, then the day can be
@@ -5973,11 +5959,9 @@
    U+002D HYPHEN-MINUS characters (-). If the collected sequence is
    not exactly zero or two characters long, then fail.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">month</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">month</var>.</li>
 
    <li><p>If <var title="">month</var> is not a number in the range
    1 ≤ <var title="">month</var> ≤ 12, then
@@ -5992,11 +5976,9 @@
    then fail. Otherwise, move <var title="">position</var> forwards
    one character.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">day</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">day</var>.</li>
 
    <li><p>If <var title="">day</var> is not a number in the range
    1 ≤ <var title="">day</var> ≤ <var title="">maxday</var>, then fail.</li>
@@ -6017,14 +5999,12 @@
   second <var title="">second</var> if it consists of the following
   components in the given order:</p>
 
-  <ol><li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing <var title="">hour</var>, in the range
+  <ol><li>Two <a href=#ascii-digits>ASCII digits</a>, representing <var title="">hour</var>, in the range
    0 ≤ <var title="">hour</var> ≤ 23</li>
 
    <li>A U+003A COLON character (:)</li>
 
-   <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing <var title="">minute</var>, in the range
+   <li>Two <a href=#ascii-digits>ASCII digits</a>, representing <var title="">minute</var>, in the range
    0 ≤ <var title="">minute</var> ≤ 59</li>
 
    <li>Optionally (required if <var title="">second</var> is
@@ -6032,17 +6012,15 @@
 
     <ol><li>A U+003A COLON character (:)</li>
 
-     <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-     representing the integer part of <var title="">second</var>, in
-     the range 0 ≤ <var title="">s</var> ≤ 59</li>
+     <li>Two <a href=#ascii-digits>ASCII digits</a>, representing the integer part of <var title="">second</var>,
+     in the range 0 ≤ <var title="">s</var> ≤ 59</li>
 
      <li>Optionally (required if <var title="">second</var> is not an
      integer):
 
       <ol><li>A 002E FULL STOP character (.)</li>
 
-       <li>One, two, or three <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing the
-       fractional part of <var title="">second</var></li>
+       <li>One, two, or three <a href=#ascii-digits>ASCII digits</a>, representing the fractional part of <var title="">second</var></li>
 
       </ol></li>
 
@@ -6079,11 +6057,9 @@
   or nothing. If at any point the algorithm says that it "fails", this
   means that it is aborted at that point and returns nothing.</p>
 
-  <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">hour</var>.</li>
+  <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">hour</var>.</li>
 
    <li>If <var title="">hour</var> is not a number in the range
    0 ≤ <var title="">hour</var> ≤ 23, then
@@ -6093,11 +6069,9 @@
    fail. Otherwise, move <var title="">position</var> forwards one
    character.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">minute</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">minute</var>.</li>
 
    <li>If <var title="">minute</var> is not a number in the range
    0 ≤ <var title="">minute</var> ≤ 59, then
@@ -6115,18 +6089,15 @@
     <ol><li><p>Advance <var title="">position</var> to the next character
      in <var title="">input</var>.</li>
 
-     <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var>, or at the last character in <var title="">input</var>, or if the next <em>two</em> characters in
-     <var title="">input</var> starting at <var title="">position</var> are not two characters both in the range
-     U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
-     fail.</li>
+     <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var>, or at
+     the last character in <var title="">input</var>, or if the next <em>two</em> characters in <var title="">input</var> starting at <var title="">position</var> are not both <a href=#ascii-digits>ASCII
+     digits</a>, then fail.</li>
 
-     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
-     either characters in the range U+0030 DIGIT ZERO (0) to U+0039
-     DIGIT NINE (9) or U+002E FULL STOP characters. If the collected
-     sequence is three characters long, or if it is longer than three
-     characters long and the third character is not a U+002E FULL STOP
-     character, or if it has more than one U+002E FULL STOP character,
-     then fail. Otherwise, let the collected string be <var title="">second</var> instead of its previous value.</li>
+     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are either <a href=#ascii-digits>ASCII digits</a>
+     or U+002E FULL STOP characters. If the collected sequence is three characters long, or if it is
+     longer than three characters long and the third character is not a U+002E FULL STOP character,
+     or if it has more than one U+002E FULL STOP character, then fail. Otherwise, let the collected
+     string be <var title="">second</var> instead of its previous value.</li>
 
     </ol></li>
 
@@ -6228,15 +6199,12 @@
      <!-- the -00:00 offset is disallowed because RFC3339 gives it a
      special semantic -->
 
-     <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-     representing the hours component <var title="">hour</var> of
+     <li>Two <a href=#ascii-digits>ASCII digits</a>, representing the hours component <var title="">hour</var> of
      the time-zone offset, in the range 0 ≤ <var title="">hour</var> ≤ 23</li>
 
      <li>Optionally, a U+003A COLON character (:)</li>
 
-     <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-     representing the minutes component <var title="">minute</var>
-     of the time-zone offset, in the range 0 ≤ <var title="">minute</var> ≤ 59</li>
+     <li>Two <a href=#ascii-digits>ASCII digits</a>, representing the minutes component <var title="">minute</var> of the time-zone offset, in the range 0 ≤ <var title="">minute</var> ≤ 59</li>
 
     </ol></li>
 
@@ -6305,8 +6273,8 @@
      <li><p>Advance <var title="">position</var> to the next character
      in <var title="">input</var>.</li>
 
-     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-     U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). Let <var title="">s</var> be the collected sequence.</li>
+     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. Let
+     <var title="">s</var> be the collected sequence.</li>
 
      <li>
 
@@ -6321,11 +6289,9 @@
        fail. Otherwise, move <var title="">position</var> forwards one
        character.</li>
 
-       <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-       U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-       sequence is not exactly two characters long, then
-       fail. Otherwise, interpret the resulting sequence as a base-ten
-       integer. Let that number be the <var title="">timezone<sub title="">minutes</sub></var>.</li>
+       <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If
+       the collected sequence is not exactly two characters long, then fail. Otherwise, interpret
+       the resulting sequence as a base-ten integer. Let that number be the <var title="">timezone<sub title="">minutes</sub></var>.</li>
 
       </ol><p>If <var title="">s</var> is exactly four characters long,
       then run these substeps:</p>
@@ -6544,16 +6510,14 @@
   week-year <var title="">year</var> and week <var title="">week</var>
   if it consists of the following components in the given order:</p>
 
-  <ol><li>Four or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing <var title="">year</var>, where <var title="">year</var> > 0</li>
+  <ol><li>Four or more <a href=#ascii-digits>ASCII digits</a>, representing <var title="">year</var>, where <var title="">year</var> > 0</li>
 
    <li>A U+002D HYPHEN-MINUS character (-)</li>
 
    <li>A U+0057 LATIN CAPITAL LETTER W character (W)</li>
 
-   <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing the week <var title="">week</var>, in the range
-   1 ≤ <var title="">week</var> ≤ <var title="">maxweek</var>, where <var title="">maxweek</var> is the
-   <a href=#week-number-of-the-last-day>week number of the last day</a> of week-year <var title="">year</var></li>
+   <li>Two <a href=#ascii-digits>ASCII digits</a>, representing the week <var title="">week</var>, in the range
+   1 ≤ <var title="">week</var> ≤ <var title="">maxweek</var>, where <var title="">maxweek</var> is the <a href=#week-number-of-the-last-day>week number of the last day</a> of week-year <var title="">year</var></li>
 
   </ol><div class=impl>
 
@@ -6568,11 +6532,9 @@
    <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
    string.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not at least four characters long, then
-   fail. Otherwise, interpret the resulting sequence as a base-ten
-   integer. Let that number be the <var title="">year</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not at least four characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">year</var>.</li>
 
    <li><p>If <var title="">year</var> is not a number greater than
    zero, then fail.</li>
@@ -6584,11 +6546,9 @@
    <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+0057 LATIN CAPITAL LETTER W
    character (W), then fail. Otherwise, move <var title="">position</var> forwards one character.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">week</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">week</var>.</li>
 
    <li><p>Let <var title="">maxweek</var> be the <a href=#week-number-of-the-last-day>week number of
    the last day</a> of year <var title="">year</var>.</li>
@@ -6649,42 +6609,33 @@
     corresponds to the same number of seconds as in <var title="">t</var>:</p>
 
     <ol><!--MONTHS:
-     <li><p>One or more <span
-     title="concept-datetime-digit">digits</span> followed by a U+0059
-     LATIN CAPITAL LETTER Y character, representing a number of
-     years.</p></li>
+     <li><p>One or more <span>ASCII digits</span> followed by a U+0059 LATIN CAPITAL LETTER Y
+     character, representing a number of years.</p></li>
 
-     <li><p>One or more <span
-     title="concept-datetime-digit">digits</span> followed by a U+004D
-     LATIN CAPITAL LETTER M character, representing a number of
-     months.</p></li>
---><li><p>One or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a> followed by a U+0044
-     LATIN CAPITAL LETTER D character, representing a number of
-     days.</li>
+     <li><p>One or more <span>ASCII digits</span> followed by a U+004D LATIN CAPITAL LETTER M
+     character, representing a number of months.</p></li>
+--><li><p>One or more <a href=#ascii-digits>ASCII digits</a> followed by a U+0044 LATIN CAPITAL LETTER D
+     character, representing a number of days.</li>
 
      <li>
 
       <p>A U+0054 LATIN CAPITAL LETTER T character followed by one or
       more of the following subcomponents, in the order given:</p>
 
-      <ol><li><p>One or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a> followed by a
-       U+0048 LATIN CAPITAL LETTER H character, representing a number
-       of hours.</li>
+      <ol><li><p>One or more <a href=#ascii-digits>ASCII digits</a> followed by a U+0048 LATIN CAPITAL LETTER H
+       character, representing a number of hours.</li>
 
-       <li><p>One or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a> followed by a
-       U+004D LATIN CAPITAL LETTER M character, representing a number
-       of minutes.</li>
+       <li><p>One or more <a href=#ascii-digits>ASCII digits</a> followed by a U+004D LATIN CAPITAL LETTER M
+       character, representing a number of minutes.</li>
 
        <li>
 
         <p>The following components:</p>
 
-        <ol><li><p>One or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing a
-         number of seconds.</li>
+        <ol><li><p>One or more <a href=#ascii-digits>ASCII digits</a>, representing a number of seconds.</li>
 
-         <li><p>Optionally, a U+002E FULL STOP character (.) followed
-         by one, two, or three <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing a
-         fraction of a second.</li>
+         <li><p>Optionally, a U+002E FULL STOP character (.) followed by one, two, or three
+         <a href=#ascii-digits>ASCII digits</a>, representing a fraction of a second.</li>
 
          <li><p>A U+0053 LATIN CAPITAL LETTER S character.</li>
 
@@ -6711,15 +6662,13 @@
     <ol><li><p>Zero or more <a href=#space-character title="space character">space
      characters</a>.</li>
 
-     <li><p>One or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing a
-     number of time units, scaled by the <a href=#duration-time-component-scale>duration time component
-     scale</a> specified (see below) to represent a number of
+     <li><p>One or more <a href=#ascii-digits>ASCII digits</a>, representing a number of time units, scaled by
+     the <a href=#duration-time-component-scale>duration time component scale</a> specified (see below) to represent a number of
      seconds.</li>
 
-     <li><p>If the <a href=#duration-time-component-scale>duration time component scale</a>
-     specified is 1 (i.e. the units are seconds), then, optionally, a
-     U+002E FULL STOP character (.) followed by one, two, or three <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing a
-     fraction of a second.</li>
+     <li><p>If the <a href=#duration-time-component-scale>duration time component scale</a> specified is 1 (i.e. the units are
+     seconds), then, optionally, a U+002E FULL STOP character (.) followed by one, two, or three
+     <a href=#ascii-digits>ASCII digits</a>, representing a fraction of a second.</li>
 
      <li><p>Zero or more <a href=#space-character title="space character">space
      characters</a>.</li>
@@ -6841,12 +6790,9 @@
       not advance <var title="">position</var>. That is taken care of
       below.)</p>
 
-      <p>Otherwise, if <var title="">next character</var> is a
-      character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-      NINE (9), then <a href=#collect-a-sequence-of-characters>collect a sequence of characters</a> in
-      the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
-      interpret the resulting sequence as a base-ten integer, and let
-      <var title="">N</var> be that number.</p>
+      <p>Otherwise, if <var title="">next character</var> is an <a href=#ascii-digits title="ASCII digits">ASCII
+      digit</a>, then <a href=#collect-a-sequence-of-characters>collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII
+      digits</a>, interpret the resulting sequence as a base-ten integer, and let <var title="">N</var> be that number.</p>
 
       <p>Otherwise <var title="">next character</var> is not part of a
       number; fail.</p>
@@ -6864,8 +6810,7 @@
       <p>If <var title="">next character</var> is a U+002E FULL STOP
       character (.), then run these substeps:</p>
 
-      <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the
-       range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). Let <var title="">s</var> be the resulting sequence.</li>
+      <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. Let <var title="">s</var> be the resulting sequence.</li>
 
        <li><p>If <var title="">s</var> is the empty string, then
        fail.</li>
@@ -7085,15 +7030,11 @@
   range 0..255, representing the red, green, and blue components of
   the color respectively, in the sRGB color space. <a href=#refsSRGB>[SRGB]</a></p>
 
-  <p>A string is a <dfn id=valid-simple-color>valid simple color</dfn> if it is exactly
-  seven characters long, and the first character is a U+0023 NUMBER
-  SIGN character (#), and the remaining six characters are all in the
-  range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0041 LATIN
-  CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F, U+0061 LATIN
-  SMALL LETTER A to U+0066 LATIN SMALL LETTER F, with the first two
-  digits representing the red component, the middle two digits
-  representing the green component, and the last two digits
-  representing the blue component, in hexadecimal.</p>
+  <p>A string is a <dfn id=valid-simple-color>valid simple color</dfn> if it is exactly seven characters long, and the
+  first character is a U+0023 NUMBER SIGN character (#), and the remaining six characters are all
+  <a href=#ascii-hex-digits>ASCII hex digits</a>, with the first two digits representing the red component, the
+  middle two digits representing the green component, and the last two digits representing the blue
+  component, in hexadecimal.</p>
 
   <p>A string is a <dfn id=valid-lowercase-simple-color>valid lowercase simple color</dfn> if it is a
   <a href=#valid-simple-color>valid simple color</a> and doesn't use any characters in
@@ -7117,11 +7058,8 @@
    <li><p>If the first character in <var title="">input</var> is not a
    U+0023 NUMBER SIGN character (#), then return an error.</li>
 
-   <li><p>If the last six characters of <var title="">input</var> are
-   not all in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE
-   (9), U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER
-   F, U+0061 LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F, then
-   return an error.</li>
+   <li><p>If the last six characters of <var title="">input</var> are not all <a href=#ascii-hex-digits>ASCII hex
+   digits</a>, then return an error.</li>
 
    <li><p>Let <var title="">result</var> be a <a href=#simple-color>simple
    color</a>.</p>
@@ -7144,12 +7082,9 @@
   <ol><li><p>Let <var title="">result</var> be a string consisting of a
    single U+0023 NUMBER SIGN character (#).</li>
 
-   <li><p>Convert the red, green, and blue components in turn to
-   two-digit hexadecimal numbers using the digits U+0030 DIGIT ZERO
-   (0) to U+0039 DIGIT NINE (9) and U+0061 LATIN SMALL LETTER A
-   to U+0066 LATIN SMALL LETTER F, zero-padding if necessary, and
-   append these numbers to <var title="">result</var>, in the order
-   red, green, blue.</p>
+   <li><p>Convert the red, green, and blue components in turn to two-digit hexadecimal numbers using
+   <a href=#lowercase-ascii-hex-digits>lowercase ASCII hex digits</a>, zero-padding if necessary, and append these numbers to
+   <var title="">result</var>, in the order red, green, blue.</p>
 
    <li><p>Return <var title="">result</var>, which will be a
    <a href=#valid-lowercase-simple-color>valid lowercase simple color</a>.</li>
@@ -7190,12 +7125,8 @@
 
    <li>
 
-    <p>If <var title="">input</var> is four characters long, and the
-    first character in <var title="">input</var> is a U+0023 NUMBER
-    SIGN character (#), and the last three characters of <var title="">input</var> are all in the range U+0030 DIGIT ZERO (0)
-    to U+0039 DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+0046
-    LATIN CAPITAL LETTER F, and U+0061 LATIN SMALL LETTER A to U+0066
-    LATIN SMALL LETTER F, then run these substeps:</p>
+    <p>If <var title="">input</var> is four characters long, and the first character in <var title="">input</var> is a U+0023 NUMBER SIGN character (#), and the last three characters of
+    <var title="">input</var> are all <a href=#ascii-hex-digits>ASCII hex digits</a>, then run these substeps:</p>
 
     <ol><li><p>Let <var title="">result</var> be a <a href=#simple-color>simple
      color</a>.</p>
@@ -7228,11 +7159,8 @@
    <li><p>If the first character in <var title="">input</var> is a
    U+0023 NUMBER SIGN character (#), remove it.</li>
 
-   <li><p>Replace any character in <var title="">input</var> that is
-   not in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
-   U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F, and
-   U+0061 LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F with the
-   character U+0030 DIGIT ZERO (0).</li>
+   <li><p>Replace any character in <var title="">input</var> that is not an <a href=#ascii-hex-digits title="ASCII hex
+   digits">ASCII hex digit</a> with the character U+0030 DIGIT ZERO (0).</li>
 
    <li><p>While <var title="">input</var>'s length is zero or not a
    multiple of three, append a U+0030 DIGIT ZERO (0) character to <var title="">input</var>.</li>
@@ -8224,7 +8152,7 @@
      <td><a href=#concept-uda-input title=concept-uda-input>input</a> is an <a href=#authority-based-url>authority-based URL</a>, and contained a <a href=#url-port title=url-port><port></a> component (possibly an empty one)
      <td>—
      <td>—
-     <td>Remove all characters in the new value from the first that is not in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), if any.
+     <td>Remove all characters in the new value from the first that is not an <a href=#ascii-digits title="ASCII digits">ASCII digit</a>, if any.
          Remove any leading U+0030 DIGIT ZERO characters (0) in the new value.
          If the resulting string is empty, set it to a single U+0030 DIGIT ZERO character (0).
      <td><a href=#concept-uda-input title=concept-uda-input>input</a> is an <a href=#authority-based-url>authority-based URL</a>,
@@ -10432,13 +10360,10 @@
 
    <li> The seconds component of the time. </li>
 
-  </ol><p>All the numeric components above, other than the year, must be
-  given as two digits in the range U+0030 DIGIT ZERO (0) to U+0039
-  DIGIT NINE (9) representing the number in base ten, zero-padded if
-  necessary. The year must be given as the shortest possible string of
-  four or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
-  DIGIT NINE (9) representing the number in base ten, zero-padded if
-  necessary.</p>
+  </ol><p>All the numeric components above, other than the year, must be given as two <a href=#ascii-digits>ASCII
+  digits</a> representing the number in base ten, zero-padded if necessary. The year must be
+  given as the shortest possible string of four or more <a href=#ascii-digits>ASCII digits</a> representing the
+  number in base ten, zero-padded if necessary.</p>
 
   <p>The <code><a href=#document>Document</a></code>'s source file's last modification date
   and time must be derived from relevant features of the networking
@@ -12113,8 +12038,7 @@
   <p>A <dfn id=custom-data-attribute>custom data attribute</dfn> is an attribute in no
   namespace whose name starts with the string "<dfn id=attr-data-* title=attr-data-*><code>data-</code></dfn>", has at least one
   character after the hyphen, is <a href=#xml-compatible>XML-compatible</a>, and
-  contains no characters in the range U+0041 to U+005A (LATIN CAPITAL
-  LETTER A to LATIN CAPITAL LETTER Z).</p>
+  contains no <a href=#uppercase-ascii-letters>uppercase ASCII letters</a>.</p>
 
   <p class=note>All attribute names on <a href=#html-elements>HTML elements</a> in
   <a href=#html-documents>HTML documents</a> get ASCII-lowercased automatically, so
@@ -12182,19 +12106,14 @@
 
      <li>For each content attribute on the element whose first five
      characters are the string "<code title="">data-</code>" and whose
-     remaining characters (if any) do not include any characters in
-     the range U+0041 to U+005A (LATIN CAPITAL LETTER A to LATIN
-     CAPITAL LETTER Z), add a name-value pair to <var title="">list</var> whose name is the attribute's name with the
+     remaining characters (if any) do not include any <a href=#uppercase-ascii-letters>uppercase ASCII letters</a>, add a name-value pair to <var title="">list</var> whose name is the attribute's name with the
      first five characters removed and whose value is the attribute's
      value.</li>
 
-     <li>For each name <var title="">list</var>, for each U+002D
-     HYPHEN-MINUS character (-) in the name that is followed by a
-     character in the range U+0061 to U+007A (U+0061 LATIN SMALL
-     LETTER A to U+007A LATIN SMALL LETTER Z), remove the U+002D
-     HYPHEN-MINUS character (-) and replace the character that
-     followed it by the same character <a href=#converted-to-ascii-uppercase>converted to ASCII
-     uppercase</a>.</li>
+     <li>For each name <var title="">list</var>, for each U+002D HYPHEN-MINUS character (-) in the
+     name that is followed by a <a href=#lowercase-ascii-letters title="lowercase ASCII letters">lowercase ASCII letter</a>,
+     remove the U+002D HYPHEN-MINUS character (-) and replace the character that followed it by the
+     same character <a href=#converted-to-ascii-uppercase>converted to ASCII uppercase</a>.</li>
 
      <li>Return <var title="">list</var>.</li>
 
@@ -12209,14 +12128,11 @@
      <li>Let <var title="">value</var> be the value passed to the
      algorithm.</li>
 
-     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS
-     character (-) followed by a character in the range U+0061 to
-     U+007A (U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
-     Z), throw a <code><a href=#syntaxerror>SyntaxError</a></code> exception and abort these
-     steps.</li>
+     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS character (-) followed by a
+     <a href=#lowercase-ascii-letters title="lowercase ASCII letters">lowercase ASCII letter</a>, throw a
+     <code><a href=#syntaxerror>SyntaxError</a></code> exception and abort these steps.</li>
 
-     <li>For each character in the range U+0041 to U+005A (U+0041
-     LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z) in <var title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
+     <li>For each <a href=#uppercase-ascii-letters title="uppercase ASCII letters">uppercase ASCII letter</a> in <var title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
      before the character and replace the character with the same
      character <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>.</li>
 
@@ -12237,14 +12153,11 @@
     <ol><li>Let <var title="">name</var> be the name passed to the
      algorithm.</li>
 <!--(can't happen while the DOMStringMap deleter has no name)
-     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS
-     character (-) followed by a character in the range U+0061 to
-     U+007A (U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
-     Z), throw a <code>SyntaxError</code> exception and abort these
-     steps.</li>
+     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS character (-) followed by a
+     <span title="lowercase ASCII letters">lowercase ASCII letter</span>, throw a
+     <code>SyntaxError</code> exception and abort these steps.</li>
 -->
-     <li>For each character in the range U+0041 to U+005A (U+0041
-     LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z) in <var title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
+     <li>For each <a href=#uppercase-ascii-letters title="uppercase ASCII letters">uppercase ASCII letter</a> in <var title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
      before the character and replace the character with the same
      character <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>.</li>
 
@@ -15677,8 +15590,7 @@
 
      <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
 
-     <li><p><a href=#collect-a-sequence-of-characters title="collect a sequence of characters">Collect a
-     sequence of characters</a> that are not<!--neither--> <a href=#space-character title="space character">space characters</a><!-- nor a U+002C
+     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are not<!--neither--> <a href=#space-character title="space character">space characters</a><!-- nor a U+002C
      COMMA character (,)-->.</li>
 
      <li><p>Set the <a href=#pragma-set-default-language>pragma-set default language</a> to the
@@ -15768,18 +15680,13 @@
 
      <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
 
-     <li><p><a href=#collect-a-sequence-of-characters title="collect a sequence of characters">Collect a
-     sequence of characters</a> in the range U+0030 DIGIT ZERO (0)
-     to U+0039 DIGIT NINE (9), and parse the resulting string using
-     the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative integers</a>. If the
-     sequence of characters collected is the empty string, then no
-     number will have been parsed; abort these steps. Otherwise, let
-     <var title="">time</var> be the parsed number.</li>
+     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>, and
+     parse the resulting string using the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative integers</a>. If
+     the sequence of characters collected is the empty string, then no number will have been parsed;
+     abort these steps. Otherwise, let <var title="">time</var> be the parsed number.</li>
 
-     <li><p><a href=#collect-a-sequence-of-characters title="collect a sequence of characters">Collect a
-     sequence of characters</a> in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9) and U+002E FULL STOP (.). Ignore any collected
-     characters.</li>
+     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a> and
+     U+002E FULL STOP characters (.). Ignore any collected characters.</li>
 
      <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
 
@@ -21250,10 +21157,9 @@
      Otherwise, let <var title="">x</var> and <var title="">y</var> be zero.</li>
 
      <li>Let the <dfn id=hyperlink-suffix><var>hyperlink suffix</var></dfn> be a U+003F QUESTION MARK character, the
-     value of <var title="">x</var> expressed as a base-ten integer using ASCII digits, a U+002C
-     COMMA character (,), and the value of <var title="">y</var> expressed as a base-ten integer
-     using ASCII digits. ASCII digits are the characters in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9).</li>
+     value of <var title="">x</var> expressed as a base-ten integer using <a href=#ascii-digits>ASCII digits</a>,
+     a U+002C COMMA character (,), and the value of <var title="">y</var> expressed as a base-ten
+     integer using <a href=#ascii-digits>ASCII digits</a>.</li>
 
     </ol></li>
 
@@ -22230,7 +22136,7 @@
    </dd>
 
 
-   <dt>Four or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, at least one of which is not U+0030 DIGIT ZERO (0)</dt>
+   <dt>Four or more <a href=#ascii-digits>ASCII digits</a>, at least one of which is not U+0030 DIGIT ZERO (0)</dt>
 
    <dd>
 
@@ -22298,12 +22204,9 @@
    returns a <a href=#concept-week title=concept-week>week</a>, that is the
    machine-readable equivalent; abort these steps.</li>
 
-   <li><p>If the element's <a href=#datetime-value>datetime value</a> consists of
-   only characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-   NINE (9), at least one of which is not U+0030 DIGIT ZERO (0),
-   then the machine-readable equivalent is the base-ten
-   interpretation of those digits, representing a year; abort these
-   steps.</li>
+   <li><p>If the element's <a href=#datetime-value>datetime value</a> consists of only <a href=#ascii-digits>ASCII digits</a>,
+   at least one of which is not U+0030 DIGIT ZERO (0), then the machine-readable equivalent is the
+   base-ten interpretation of those digits, representing a year; abort these steps.</li>
 
    <li><p>If <a href=#parse-a-duration-string title="parse a duration string">parsing a duration
    string</a> from the element's <a href=#datetime-value>datetime value</a>
@@ -27310,8 +27213,7 @@
   <p>Any namespace-less attribute other than <code title=attr-embed-name><a href=#attr-embed-name>name</a></code>, <code title=attr-embed-align><a href=#attr-embed-align>align</a></code>, <code title=attr-embed-hspace><a href=#attr-embed-hspace>hspace</a></code>, and <code title=attr-embed-vspace><a href=#attr-embed-vspace>vspace</a></code> <!-- when editing, see also
   note below --> may be specified on the <code><a href=#the-embed-element>embed</a></code> element,
   so long as its name is <a href=#xml-compatible>XML-compatible</a> and contains no
-  characters in the range U+0041 to U+005A (LATIN CAPITAL LETTER A to
-  LATIN CAPITAL LETTER Z). These attributes are then passed as
+  <a href=#uppercase-ascii-letters>uppercase ASCII letters</a>. These attributes are then passed as
   parameters to the <a href=#plugin>plugin</a>.</p>
 
   <p class=note>All attributes in <a href=#html-documents>HTML documents</a> get
@@ -34202,9 +34104,7 @@
      track dispatch type</a> must be set to the concatenation of
      the <var title="">stream type</var> byte and the zero or more
      <var title="">descriptor bytes</var> bytes, expressed in
-     hexadecimal using characters in the ranges U+0030 DIGIT ZERO (0)
-     to U+0039 DIGIT NINE (9) and U+0041 LATIN CAPITAL LETTER A to
-     U+0046 LATIN CAPITAL LETTER F.
+     hexadecimal using <a href=#uppercase-ascii-hex-digits>uppercase ASCII hex digits</a>.
      <a href=#refsMPEG2>[MPEG2]</a>
 
      </dd>
@@ -39053,31 +38953,24 @@
   therefore only useful for assigning to other attributes or for
   comparison to other gradients or patterns.)</p>
 
-  <p>The <dfn id=serialization-of-a-color>serialization of a color</dfn> for a color value is a
-  string, computed as follows: if it has alpha equal to 1.0, then the
-  string is a lowercase six-digit hex value, prefixed with a "#"
-  character (U+0023 NUMBER SIGN), with the first two digits
-  representing the red component, the next two digits representing the
-  green component, and the last two digits representing the blue
-  component, the digits being in the range 0-9 a-f (U+0030 to U+0039
-  and U+0061 to U+0066). Otherwise, the color value has alpha less
-  than 1.0, and the string is the color value in the CSS <code title="">rgba()</code> functional-notation format: the literal
-  string <code title="">rgba</code> (U+0072 U+0067 U+0062 U+0061)
-  followed by a U+0028 LEFT PARENTHESIS, a base-ten integer in the
-  range 0-255 representing the red component (using digits 0-9, U+0030
-  to U+0039, in the shortest form possible), a literal U+002C COMMA
-  and U+0020 SPACE, an integer for the green component, a comma and a
-  space, an integer for the blue component, another comma and space, a
-  U+0030 DIGIT ZERO, if the alpha value is greater than zero then a
-  U+002E FULL STOP (representing the decimal point), if the alpha
-  value is greater than zero then one or more digits in the range 0-9
-  (U+0030 to U+0039) representing the fractional part of the alpha<!--
-  value with no trailing zeros (implied by next sentence)-->, and
-  finally a U+0029 RIGHT PARENTHESIS. User agents must express the
-  fractional part of the alpha value, if any, with the level of
-  precision necessary for the alpha value, when reparsed, to be
-  interpreted as the same alpha value.</p> <!-- if people complain
-  this is unreadable, expand it into a <dl> with two nested <ol>s -->
+  <p>The <dfn id=serialization-of-a-color>serialization of a color</dfn> for a color value is a string, computed as follows: if
+  it has alpha equal to 1.0, then the string is a lowercase six-digit hex value, prefixed with a "#"
+  character (U+0023 NUMBER SIGN), with the first two digits representing the red component, the next
+  two digits representing the green component, and the last two digits representing the blue
+  component, the digits being <a href=#lowercase-ascii-hex-digits>lowercase ASCII hex digits</a>. Otherwise, the color value
+  has alpha less than 1.0, and the string is the color value in the CSS <code title="">rgba()</code>
+  functional-notation format: the literal string <code title="">rgba</code> (U+0072 U+0067 U+0062
+  U+0061) followed by a U+0028 LEFT PARENTHESIS, a base-ten integer in the range 0-255 representing
+  the red component (using <a href=#ascii-digits>ASCII digits</a> in the shortest form possible), a literal
+  U+002C COMMA and U+0020 SPACE, an integer for the green component, a comma and a space, an integer
+  for the blue component, another comma and space, a U+0030 DIGIT ZERO, if the alpha value is
+  greater than zero then a U+002E FULL STOP (representing the decimal point), if the alpha value is
+  greater than zero then one or more <a href=#ascii-digits>ASCII digits</a> representing the fractional part of
+  the alpha<!-- value with no trailing zeros (implied by next sentence)-->, and finally a U+0029
+  RIGHT PARENTHESIS. User agents must express the fractional part of the alpha value, if any, with
+  the level of precision necessary for the alpha value, when reparsed, to be interpreted as the same
+  alpha value.</p> <!-- if people complain this is unreadable, expand it into a <dl> with two nested
+  <ol>s -->
 
   <p>When the context is created, the <code title=dom-context-2d-fillStyle><a href=#dom-context-2d-fillstyle>fillStyle</a></code> and <code title=dom-context-2d-strokeStyle><a href=#dom-context-2d-strokestyle>strokeStyle</a></code> attributes
   must initially have the string value <code title="">#000000</code>.</p>
@@ -57922,17 +57815,10 @@
       <p>If there isn't one, do nothing. Otherwise, proceed as
       follows:</p>
 
-      <p>If <var title="">submitter</var> is an <code><a href=#the-input-element>input</a></code>
-      element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code>
-      attribute is in the <a href="#image-button-state-(type=image)" title=attr-input-type-image>Image
-      Button</a> state, then let <var title="">result</var> be the
-      string formed by concatenating the <a href=#concept-input-type-image-coordinate title=concept-input-type-image-coordinate>selected
-      coordinate</a>'s <var title="">x</var>-component, expressed
-      as a base-ten number using the characters U+0030 DIGIT ZERO (0)
-      to U+0039 DIGIT NINE (9) to represent the digits 0 to 9, a
+      <p>If <var title="">submitter</var> is an <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href="#image-button-state-(type=image)" title=attr-input-type-image>Image Button</a> state, then let <var title="">result</var>
+      be the string formed by concatenating the <a href=#concept-input-type-image-coordinate title=concept-input-type-image-coordinate>selected coordinate</a>'s <var title="">x</var>-component, expressed as a base-ten number using <a href=#ascii-digits>ASCII digits</a>, a
       U+002C COMMA character (,), and the <a href=#concept-input-type-image-coordinate title=concept-input-type-image-coordinate>selected
-      coordinate</a>'s <var title="">y</var>-component, expressed
-      in the same way as the <var title="">x</var>-component.</p>
+      coordinate</a>'s <var title="">y</var>-component, expressed in the same way as the <var title="">x</var>-component.</p>
 
       <p>Otherwise, if <var title="">submitter</var> has a <a href=#concept-fe-value title=concept-fe-value>value</a>, then let <var title="">result</var> be that <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
 
@@ -58224,8 +58110,7 @@
      cannot be expressed using the selected character encoding,
      replace the character by a string consisting of a U+0026
      AMPERSAND character (&), a U+0023 NUMBER SIGN character (#),
-     one or more characters in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9) representing the Unicode code point of the
+     one or more <a href=#ascii-digits>ASCII digits</a> representing the Unicode code point of the
      character in base ten, and finally a U+003B SEMICOLON character
      (;).</li><!-- we should say it should be the shortest
      possible string, no leading zeros. this whole step is asinine,
@@ -58264,12 +58149,9 @@
 
        <dd>
 
-        <ol><li><p>Let <var title="">s</var> be a string consisting of a
-         U+0025 PERCENT SIGN character (%) followed by two characters
-         in the ranges U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)
-         and U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL
-         LETTER F representing the hexadecimal value of the byte in
-         question (zero-padded if necessary).</li>
+        <ol><li><p>Let <var title="">s</var> be a string consisting of a U+0025 PERCENT SIGN character
+         (%) followed by <a href=#uppercase-ascii-hex-digits>uppercase ASCII hex digits</a> representing the hexadecimal value
+         of the byte in question (zero-padded if necessary).</li>
 
          <li><p>Encode the string <var title="">s</var> as US-ASCII,
          so that it is now a byte string.</p>
@@ -58369,10 +58251,7 @@
       escape. This replacement most not be recursive.</p>
 
       <p>An escape is a U+0025 PERCENT SIGN character (%) followed by
-      two characters in the ranges U+0030 DIGIT ZERO (0) to U+0039
-      DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN
-      CAPITAL LETTER F, and U+0061 LATIN SMALL LETTER A to U+0066
-      LATIN SMALL LETTER F.</p>
+      two <a href=#ascii-hex-digits>ASCII hex digits</a>.</p>
 
       <p>The character represented by an escape is the Unicode
       character whose code point is equal to the value of the two
@@ -58466,8 +58345,7 @@
      cannot be expressed using the selected character encoding,
      replace the character by a string consisting of a U+0026
      AMPERSAND character (&), a U+0023 NUMBER SIGN character (#),
-     one or more characters in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9) representing the Unicode code point of the
+     one or more <a href=#ascii-digits>ASCII digits</a> representing the Unicode code point of the
      character in base ten, and finally a U+003B SEMICOLON character
      (;).</li><!-- we should say it should be the shortest
      possible string, no leading zeros. this whole step is asinine,
@@ -61606,8 +61484,7 @@
    the "<code title="">x</code>" or "<code title="">X</code>".</li>
 
    <li><p>If either <var title="">width string</var> or <var title="">height string</var> start with a U+0030 DIGIT ZERO (0)
-   character or contain any characters other than characters in the
-   range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then this
+   character or contain any characters other than <a href=#ascii-digits>ASCII digits</a>, then this
    keyword doesn't represent anything. Abort these steps for that
    keyword.</li>
 
@@ -65160,24 +65037,20 @@
     <ol><li>Optionally, either a U+002B PLUS SIGN character (+) or a
      U+002D HYPHEN-MINUS character (-).</li>
 
-     <li>One or more digits in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9).</li>
+     <li>One or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9).</li>
+     or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>A U+003B SEMICOLON character (;).</li>
 
      <li>Optionally, either a U+002B PLUS SIGN character (+) or a
      U+002D HYPHEN-MINUS character (-).</li>
 
-     <li>One or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
-     DIGIT NINE (9).</li>
+     <li>One or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9).</li>
+     or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
     </ol><p>The optional components marked with an asterisk (*) should be
     included, and should have six digits each.</p>
@@ -66270,24 +66143,20 @@
     <ol><li>Optionally, either a U+002B PLUS SIGN character (+) or a
      U+002D HYPHEN-MINUS character (-).</li>
 
-     <li>One or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
-     DIGIT NINE (9).</li>
+     <li>One or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9).</li>
+     or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>A U+003B SEMICOLON character (;).</li>
 
      <li>Optionally, either a U+002B PLUS SIGN character (+) or a
      U+002D HYPHEN-MINUS character (-).</li>
 
-     <li>One or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
-     DIGIT NINE (9).</li>
+     <li>One or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9).</li>
+     or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
     </ol><p>The optional components marked with an asterisk (*) should be
     included, and should have six digits each.</p> <!-- iCalendar
@@ -76036,9 +75905,7 @@
 
     <ul class=brief><li>U+002B PLUS SIGN (+)
      <li>U+002F SOLIDUS (/)
-     <li>U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)
-     <li>U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z
-     <li>U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER Z
+     <li><a href=#alphanumeric-ascii-characters>Alphanumeric ASCII characters</a>
     </ul></li>
 
    <li><p>Let <var title="">output</var> be a string, initially
@@ -77229,12 +77096,10 @@
     schemes don't contain colons.</p>
 
     <p>If the <code title=dom-navigator-registerProtocolHandler><a href=#dom-navigator-registerprotocolhandler>registerProtocolHandler()</a></code>
-    method is invoked with a scheme that is neither a
-    <a href=#whitelisted-scheme>whitelisted scheme</a> nor a scheme whose value starts
-    with the substring "<code title="">web+</code>" and otherwise
-    contains only characters in the range U+0061 LATIN SMALL LETTER A
-    to U+007A LATIN SMALL LETTER Z, the user agent must throw a
-    <code><a href=#securityerror>SecurityError</a></code> exception.</p>
+    method is invoked with a scheme that is neither a <a href=#whitelisted-scheme>whitelisted scheme</a> nor a scheme
+    whose value starts with the substring "<code title="">web+</code>" and otherwise contains only
+    <span>lowercase ASCII characters</span>, the user agent must throw a <code><a href=#securityerror>SecurityError</a></code>
+    exception.</p>
 
     <p>The following schemes are the <dfn id=whitelisted-scheme title="whitelisted
     scheme">whitelisted schemes</dfn>:</p>
@@ -84582,8 +84447,7 @@
 
    <dt>If the field name is "retry"</dt>
 
-   <dd><p>If the field value consists of only characters in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then interpret the
+   <dd><p>If the field value consists of only <a href=#ascii-digits>ASCII digits</a>, then interpret the
    field value as an integer in base ten, and set the event stream's
    <a href=#concept-event-stream-reconnection-time title=concept-event-stream-reconnection-time>reconnection
    time</a> to that integer. Otherwise, ignore the field.</dd>
@@ -87609,12 +87473,10 @@
 
   </div>
 
-  <p>Many strings in the HTML syntax (e.g. the names of elements and
-  their attributes) are case-insensitive, but only for characters in
-  the ranges U+0041 to U+005A (LATIN CAPITAL LETTER A to LATIN CAPITAL
-  LETTER Z) and U+0061 to U+007A (LATIN SMALL LETTER A to LATIN SMALL
-  LETTER Z). For convenience, in this section this is just referred to
-  as "case-insensitive".</p>
+  <p>Many strings in the HTML syntax (e.g. the names of elements and their attributes) are
+  case-insensitive, but only for <a href=#uppercase-ascii-letters>uppercase ASCII letters</a> and <a href=#lowercase-ascii-letters>lowercase ASCII
+  letters</a>. For convenience, in this section this is just referred to as
+  "case-insensitive".</p>
 
 
   <h4 id=the-doctype><span class=secno>12.1.1 </span>The DOCTYPE</h4>
@@ -87812,15 +87674,11 @@
   the content model and those described in this paragraph. Those
   restrictions are described below.</p>
 
-  <p>Tags contain a <dfn id=syntax-tag-name title=syntax-tag-name>tag name</dfn>,
-  giving the element's name. HTML elements all have names that only
-  use characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-  NINE (9), U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
-  Z, and U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER
-  Z. In the HTML syntax, tag names, even those for <a href=#foreign-elements>foreign
-  elements</a>, may be written with any mix of lower- and uppercase
-  letters that, when converted to all-lowercase, matches the element's
-  tag name; tag names are case-insensitive.</p>
+  <p>Tags contain a <dfn id=syntax-tag-name title=syntax-tag-name>tag name</dfn>, giving the element's name. HTML
+  elements all have names that only use <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a>. In the HTML
+  syntax, tag names, even those for <a href=#foreign-elements>foreign elements</a>, may be written with any mix of
+  lower- and uppercase letters that, when converted to all-lowercase, matches the element's tag
+  name; tag names are case-insensitive.</p>
 
 
   <h5 id=start-tags><span class=secno>12.1.2.1 </span>Start tags</h5>
@@ -88335,27 +88193,20 @@
 
    <dt>Decimal numeric character reference</dt>
 
-   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN
-   character (#), followed by one or more digits in the range U+0030
-   DIGIT ZERO (0) to U+0039 DIGIT NINE (9), representing a base-ten
-   integer that corresponds to a Unicode code point that is allowed
-   according to the definition below. The digits must then be followed
-   by a U+003B SEMICOLON character (;).</dd>
+   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN character (#), followed by one or more
+   <a href=#ascii-digits>ASCII digits</a>, representing a base-ten integer that corresponds to a Unicode code
+   point that is allowed according to the definition below. The digits must then be followed by a
+   U+003B SEMICOLON character (;).</dd>
 
 
    <dt>Hexadecimal numeric character reference</dt>
 
-   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN
-   character (#), which must be followed by either a U+0078 LATIN
-   SMALL LETTER X character (x) or a U+0058 LATIN CAPITAL LETTER X
-   character (X), which must then be followed by one or more digits in
-   the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0061
-   LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F, and U+0041
-   LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F,
-   representing a base-sixteen integer that corresponds to a Unicode
-   code point that is allowed according to the definition below. The
-   digits must then be followed by a U+003B SEMICOLON character
-   (;).</dd>
+   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN character (#), which must be followed
+   by either a U+0078 LATIN SMALL LETTER X character (x) or a U+0058 LATIN CAPITAL LETTER X
+   character (X), which must then be followed by one or more <a href=#ascii-hex-digits>ASCII hex digits</a>,
+   representing a base-sixteen integer that corresponds to a Unicode code point that is allowed
+   according to the definition below. The digits must then be followed by a U+003B SEMICOLON
+   character (;).</dd>
 
   </dl><p>The numeric character reference forms described above are allowed
   to reference any Unicode code point other than U+0000, U+000D,
@@ -88363,14 +88214,10 @@
   control characters other than <a href=#space-character title="space character">space
   characters</a>.</p>
 
-  <p>An <dfn id=syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous
-  ampersand</dfn> is a U+0026 AMPERSAND character (&) that is
-  followed by one or more characters in the range U+0030 DIGIT ZERO
-  (0) to U+0039 DIGIT NINE (9), U+0061 LATIN SMALL LETTER A to U+007A
-  LATIN SMALL LETTER Z, and U+0041 LATIN CAPITAL LETTER A to U+005A
-  LATIN CAPITAL LETTER Z, followed by a U+003B SEMICOLON character
-  (;), where these characters do not match any of the names given in
-  the <a href=#named-character-references>named character references</a> section.</p>
+  <p>An <dfn id=syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</dfn> is a U+0026 AMPERSAND
+  character (&) that is followed by one or more <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a>,
+  followed by a U+003B SEMICOLON character (;), where these characters do not match any of the names
+  given in the <a href=#named-character-references>named character references</a> section.</p>
 
 
   <h4 id=cdata-sections><span class=secno>12.1.5 </span>CDATA sections</h4>
@@ -90063,14 +89910,14 @@
    <dt>U+002F SOLIDUS (/)</dt>
    <dd>Switch to the <a href=#end-tag-open-state>end tag open state</a>.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new start tag token, set its tag name to the
    lowercase version of the <a href=#current-input-character>current input character</a> (add 0x0020 to the
    character's code point), then switch to the <a href=#tag-name-state>tag name
    state</a>. (Don't emit the token yet; further details will
    be filled in before it is emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Create a new start tag token, set its tag name to the
    <a href=#current-input-character>current input character</a>, then switch to the <a href=#tag-name-state>tag
    name state</a>. (Don't emit the token yet; further details will
@@ -90089,14 +89936,14 @@
 
   <p>Consume the <a href=#next-input-character>next input character</a>:</p>
 
-  <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+  <dl class=switch><dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new end tag token, set its tag name to the lowercase
    version of the <a href=#current-input-character>current input character</a> (add 0x0020 to
    the character's code point), then switch to the <a href=#tag-name-state>tag name
    state</a>. (Don't emit the token yet; further details will be
    filled in before it is emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Create a new end tag token, set its tag name to the
    <a href=#current-input-character>current input character</a>, then switch to the <a href=#tag-name-state>tag
    name state</a>. (Don't emit the token yet; further details will
@@ -90133,7 +89980,7 @@
    <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current tag token's tag name.</dd>
@@ -90169,7 +90016,7 @@
 
   <p>Consume the <a href=#next-input-character>next input character</a>:</p>
 
-  <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+  <dl class=switch><dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    lowercase version of the <a href=#current-input-character>current input character</a> (add
    0x0020 to the character's code point). Append the <a href=#current-input-character>current
@@ -90178,7 +90025,7 @@
    the token yet; further details will be filled in before it is
    emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    <a href=#current-input-character>current input character</a>. Append the <a href=#current-input-character>current
    input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
@@ -90218,13 +90065,13 @@
    the current tag token. Otherwise, treat it as per the "anything
    else" entry below.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Append the <a href=#current-input-character>current input character</a> to the current
    tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
@@ -90255,7 +90102,7 @@
 
   <p>Consume the <a href=#next-input-character>next input character</a>:</p>
 
-  <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+  <dl class=switch><dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    lowercase version of the <a href=#current-input-character>current input character</a> (add
    0x0020 to the character's code point). Append the <a href=#current-input-character>current
@@ -90264,7 +90111,7 @@
    the token yet; further details will be filled in before it is
    emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    <a href=#current-input-character>current input character</a>. Append the <a href=#current-input-character>current
    input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
@@ -90304,13 +90151,13 @@
    the current tag token. Otherwise, treat it as per the "anything
    else" entry below.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Append the <a href=#current-input-character>current input character</a> to the current
    tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
@@ -90345,7 +90192,7 @@
 
   <p>Consume the <a href=#next-input-character>next input character</a>:</p>
 
-  <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+  <dl class=switch><dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    lowercase version of the <a href=#current-input-character>current input character</a> (add
    0x0020 to the character's code point). Append the <a href=#current-input-character>current
@@ -90354,7 +90201,7 @@
    the token yet; further details will be filled in before it is
    emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    <a href=#current-input-character>current input character</a>. Append the <a href=#current-input-character>current
    input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
@@ -90394,13 +90241,13 @@
    the current tag token. Otherwise, treat it as per the "anything
    else" entry below.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Append the <a href=#current-input-character>current input character</a> to the current
    tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
@@ -90521,7 +90368,7 @@
    <dd>Set the <var><a href=#temporary-buffer>temporary buffer</a></var> to the empty string. Switch
    to the <a href=#script-data-escaped-end-tag-open-state>script data escaped end tag open state</a>.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Set the <var><a href=#temporary-buffer>temporary buffer</a></var> to the empty string. Append
    the lowercase version of the <a href=#current-input-character>current input character</a>
    (add 0x0020 to the character's code point) to the <var><a href=#temporary-buffer>temporary
@@ -90529,7 +90376,7 @@
    state</a>. Emit a U+003C LESS-THAN SIGN character token and the
    <a href=#current-input-character>current input character</a> as a character token.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Set the <var><a href=#temporary-buffer>temporary buffer</a></var> to the empty string. Append
    the <a href=#current-input-character>current input character</a> to the <var><a href=#temporary-buffer>temporary
    buffer</a></var>. Switch to the <a href=#script-data-double-escape-start-state>script data double escape start
@@ -90545,7 +90392,7 @@
 
   <p>Consume the <a href=#next-input-character>next input character</a>:</p>
 
-  <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+  <dl class=switch><dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    lowercase version of the <a href=#current-input-character>current input character</a> (add
    0x0020 to the character's code point). Append the <a href=#current-input-character>current
@@ -90554,7 +90401,7 @@
    state</a>. (Don't emit the token yet; further details will be
    filled in before it is emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    <a href=#current-input-character>current input character</a>. Append the <a href=#current-input-character>current
    input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
@@ -90594,13 +90441,13 @@
    the current tag token. Otherwise, treat it as per the "anything
    else" entry below.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Append the <a href=#current-input-character>current input character</a> to the current
    tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
@@ -90628,13 +90475,13 @@
    data escaped state</a>. Emit the <a href=#current-input-character>current input
    character</a> as a character token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    <var><a href=#temporary-buffer>temporary buffer</a></var>. Emit the <a href=#current-input-character>current input
    character</a> as a character token.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Append the <a href=#current-input-character>current input character</a> to the
    <var><a href=#temporary-buffer>temporary buffer</a></var>. Emit the <a href=#current-input-character>current input
    character</a> as a character token.</dd>
@@ -90754,13 +90601,13 @@
    double escaped state</a>. Emit the <a href=#current-input-character>current input
    character</a> as a character token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    <var><a href=#temporary-buffer>temporary buffer</a></var>. Emit the <a href=#current-input-character>current input
    character</a> as a character token.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Append the <a href=#current-input-character>current input character</a> to the
    <var><a href=#temporary-buffer>temporary buffer</a></var>. Emit the <a href=#current-input-character>current input
    character</a> as a character token.</dd>
@@ -90787,7 +90634,7 @@
    <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Start a new attribute in the current tag token. Set that
    attribute's name to the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point), and its
@@ -90838,7 +90685,7 @@
    <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current attribute's name.</dd>
@@ -90891,7 +90738,7 @@
    <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Start a new attribute in the current tag token. Set that
    attribute's name to the lowercase version of the <a href=#current-input-character>current
    input character</a> (add 0x0020 to the character's code point),
@@ -91350,7 +91197,7 @@
    <dt>U+0020 SPACE</dt>
    <dd>Ignore the character.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new DOCTYPE token. Set the token's name to the
    lowercase version of the <a href=#current-input-character>current input character</a> (add 0x0020 to the
    character's code point). Switch to the <a href=#doctype-name-state>DOCTYPE name
@@ -91392,7 +91239,7 @@
    <dd>Switch to the <a href=#data-state>data state</a>. Emit the current DOCTYPE
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current DOCTYPE token's name.</dd>
@@ -91869,14 +91716,9 @@
 
       <p>Consume the X.</p>
 
-      <p>Follow the steps below, but using the range of characters
-      U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0061 LATIN
-      SMALL LETTER A to U+0066 LATIN SMALL LETTER F, and U+0041 LATIN
-      CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F (in other
-      words, 0-9, A-F, a-f).</p>
+      <p>Follow the steps below, but using <a href=#ascii-hex-digits>ASCII hex digits</a>.</p>
 
-      <p>When it comes to interpreting the number, interpret it as a
-      hexadecimal number.</p>
+      <p>When it comes to interpreting the number, interpret it as a hexadecimal number.</p>
 
      </dd>
 
@@ -91885,16 +91727,15 @@
 
      <dd>
 
-      <p>Follow the steps below, but using the range of characters
-      U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9).</p>
+      <p>Follow the steps below, but using <a href=#ascii-digits>ASCII digits</a>.</p>
 
       <p>When it comes to interpreting the number, interpret it as a
       decimal number.</p>
 
      </dd>
 
-    </dl><p>Consume as many characters as match the range of characters
-    given above.</p>
+    </dl><p>Consume as many characters as match the range of characters given above (<a href=#ascii-hex-digits>ASCII hex
+    digits</a> or <a href=#ascii-digits>ASCII digits</a>).</p>
 
     <p>If no characters match the range, then don't consume any
     characters (and unconsume the U+0023 NUMBER SIGN character and, if
@@ -91984,25 +91825,18 @@
     column of the <a href=#named-character-references>named character references</a> table (in a
     <a href=#case-sensitive>case-sensitive</a> manner).</p>
 
-    <p>If no match can be made, then no characters are consumed, and
-    nothing is returned. In this case, if the characters after the
-    U+0026 AMPERSAND character (&) consist of a sequence of one or
-    more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-    NINE (9), U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
-    Z, and U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL
-    LETTER Z, followed by a U+003B SEMICOLON character (;), then this
-    is a <a href=#parse-error>parse error</a>.</p>
+    <p>If no match can be made, then no characters are consumed, and nothing is returned. In this
+    case, if the characters after the U+0026 AMPERSAND character (&) consist of a sequence of
+    one or more <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a> followed by a U+003B SEMICOLON character
+    (;), then this is a <a href=#parse-error>parse error</a>.</p>
 
-    <p>If the character reference is being consumed <a href=#character-reference-in-attribute-value-state title="character reference in attribute value state">as part of an
-    attribute</a>, and the last character matched is not a U+003B
-    SEMICOLON character (;), and the next character is either a U+003D
-    EQUALS SIGN character (=) or in the range U+0030 DIGIT ZERO (0) to
-    U+0039 DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+005A
-    LATIN CAPITAL LETTER Z, or U+0061 LATIN SMALL LETTER A to U+007A
-    LATIN SMALL LETTER Z, then, for historical reasons, all the
-    characters that were matched after the U+0026 AMPERSAND character
-    (&) must be unconsumed, and nothing is returned.</p>
-    <!-- "=" added because of http://www.w3.org/Bugs/Public/show_bug.cgi?id=9207#c5 -->
+    <p>If the character reference is being consumed <a href=#character-reference-in-attribute-value-state title="character reference in attribute
+    value state">as part of an attribute</a>, and the last character matched is not a U+003B
+    SEMICOLON character (;), and the next character is either a U+003D EQUALS SIGN character (=) or
+    an <a href=#alphanumeric-ascii-characters title="alphanumeric ASCII characters">alphanumeric ASCII character</a>, then, for
+    historical reasons, all the characters that were matched after the U+0026 AMPERSAND character
+    (&) must be unconsumed, and nothing is returned.</p> <!-- "=" added because of
+    http://www.w3.org/Bugs/Public/show_bug.cgi?id=9207#c5 -->
 
     <p>Otherwise, a character reference is parsed. If the last
     character matched is not a U+003B SEMICOLON character (;), there
@@ -97614,8 +97448,7 @@
    character. Otherwise, let <var title="">mode</var> be
    <i>absolute</i>.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and let the
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>, and let the
    resulting sequence be <var title="">digits</var>.</li>
 
    <li><p>If <var title="">digits</var> is the empty string, there is

Modified: index
===================================================================
--- index	2012-10-30 00:03:15 UTC (rev 7489)
+++ index	2012-10-30 22:15:48 UTC (rev 7490)
@@ -4775,13 +4775,31 @@
   <p class=note>This should not be confused with the "White_Space"
   value (abbreviated "WS") of the "Bidi_Class" property in the <code title="">Unicode.txt</code> data file.</p>
 
-  <div class=impl>
+  <p>The <dfn id=uppercase-ascii-letters>uppercase ASCII letters</dfn> are the characters in the range U+0041 LATIN CAPITAL
+  LETTER A to U+005A LATIN CAPITAL LETTER Z.</p>
 
-  <p>The <dfn id=alphanumeric-ascii-characters>alphanumeric ASCII characters</dfn> are those in the
-  ranges U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0041 LATIN
-  CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z, U+0061 LATIN
-  SMALL LETTER A to U+007A LATIN SMALL LETTER Z.</p>
+  <p>The <dfn id=lowercase-ascii-letters>lowercase ASCII letters</dfn> are the characters in the range U+0061 LATIN SMALL
+  LETTER A to U+007A LATIN SMALL LETTER Z.</p>
 
+  <p>The <dfn id=ascii-digits>ASCII digits</dfn> are the characters in the range U+0030 DIGIT ZERO (0) to U+0039
+  DIGIT NINE (9).</p>
+
+  <p>The <dfn id=alphanumeric-ascii-characters>alphanumeric ASCII characters</dfn> are those that are either <a href=#uppercase-ascii-letters>uppercase ASCII
+  letters</a>, <a href=#lowercase-ascii-letters>lowercase ASCII letters</a>, or <a href=#ascii-digits>ASCII digits</a>.</p>
+
+  <p>The <dfn id=ascii-hex-digits>ASCII hex digits</dfn> are the characters in the ranges U+0030 DIGIT ZERO (0) to
+  U+0039 DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F, and U+0061
+  LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F.</p>
+
+  <p>The <dfn id=uppercase-ascii-hex-digits>uppercase ASCII hex digits</dfn> are the characters in the ranges U+0030 DIGIT ZERO (0) to
+  U+0039 DIGIT NINE (9) and U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F only.</p>
+
+  <p>The <dfn id=lowercase-ascii-hex-digits>lowercase ASCII hex digits</dfn> are the characters in the ranges U+0030 DIGIT ZERO
+  (0) to U+0039 DIGIT NINE (9) and U+0061 LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F
+  only.</p>
+
+  <div class=impl>
+
   <p>Some of the micro-parsers described below follow the pattern of
   having an <var title="">input</var> variable that holds the string
   being parsed, and having a <var title="">position</var> variable
@@ -4931,10 +4949,8 @@
 
   <h5 id=signed-integers><span class=secno>2.5.4.1 </span>Signed integers</h5>
 
-  <p>A string is a <dfn id=valid-integer>valid integer</dfn> if it consists of one or
-  more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-  NINE (9), optionally prefixed with a U+002D HYPHEN-MINUS character
-  (-).</p>
+  <p>A string is a <dfn id=valid-integer>valid integer</dfn> if it consists of one or more <a href=#ascii-digits>ASCII digits</a>,
+  optionally prefixed with a U+002D HYPHEN-MINUS character (-).</p>
 
   <p>A <a href=#valid-integer>valid integer</a> without a U+002D HYPHEN-MINUS (-)
   prefix represents the number that is represented in base ten by that
@@ -4986,17 +5002,16 @@
 
     </ol></li>
 
-   <li><p>If the character indicated by <var title="">position</var>
-   is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
-   return an error.</li>
+   <li><p>If the character indicated by <var title="">position</var> is not an <a href=#ascii-digits title="ASCII
+   digits">ASCII digit</a>, then return an error.</li>
 
    <!-- Ok. At this point we know we have a number. It might have
    trailing garbage which we'll ignore, but it's a number, and we
    won't return an error. -->
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
-   resulting sequence as a base-ten integer. Let <var title="">value</var> be that integer.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>, and
+   interpret the resulting sequence as a base-ten integer. Let <var title="">value</var> be that
+   integer.</li>
 
    <li><p>If <var title="">sign</var> is "positive", return <var title="">value</var>, otherwise return the result of subtracting
    <var title="">value</var> from zero.</li>
@@ -5007,8 +5022,7 @@
   <h5 id=non-negative-integers><span class=secno>2.5.4.2 </span>Non-negative integers</h5>
 
   <p>A string is a <dfn id=valid-non-negative-integer>valid non-negative integer</dfn> if it
-  consists of one or more characters in the range U+0030 DIGIT ZERO
-  (0) to U+0039 DIGIT NINE (9).</p>
+  consists of one or more <a href=#ascii-digits>ASCII digits</a>.</p>
 
   <p>A <a href=#valid-non-negative-integer>valid non-negative integer</a> represents the number
   that is represented in base ten by that string of digits.</p>
@@ -5047,15 +5061,13 @@
 
    <li>One or both of the following, in the given order:
 
-    <ol><li>A series of one or more characters in the range U+0030 DIGIT
-     ZERO (0) to U+0039 DIGIT NINE (9).</li>
+    <ol><li>A series of one or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>
 
       <ol><li>A single U+002E FULL STOP character (.).</li>
 
-       <li>A series of one or more characters in the range U+0030 DIGIT
-       ZERO (0) to U+0039 DIGIT NINE (9).</li>
+       <li>A series of one or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
       </ol></li>
 
@@ -5069,8 +5081,7 @@
      <li>Optionally, a U+002D HYPHEN-MINUS character (-) or U+002B
      PLUS SIGN character (+).</li>
 
-     <li>A series of one or more characters in the range U+0030 DIGIT
-     ZERO (0) to U+0039 DIGIT NINE (9).</li>
+     <li>A series of one or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
     </ol></li>
 
@@ -5147,21 +5158,19 @@
 
     </ol></li>
 
-   <li><p>If the character indicated by <var title="">position</var>
-   is a U+002E FULL STOP (.), and that is not the last character in
-   <var title="">input</var>, and the character after the character
-   indicated by <var title="">position</var> is one of U+0030 DIGIT
-   ZERO (0) to U+0039 DIGIT NINE (9), then set <var title="">value</var> to zero and jump to the step labeled
-   <i>fraction</i>.</p> <!-- we have to check there's a number so that
-   ".e1" fails to parse but ".0" does not -->
+   <li><p>If the character indicated by <var title="">position</var> is a U+002E FULL STOP (.), and
+   that is not the last character in <var title="">input</var>, and the character after the
+   character indicated by <var title="">position</var> is an <a href=#ascii-digits title="ASCII digits">ASCII
+   digit</a>, then set <var title="">value</var> to zero and jump to the step labeled
+   <i>fraction</i>.</p> <!-- we have to check there's a number so that ".e1" fails to parse but ".0"
+   does not -->
 
-   <li><p>If the character indicated by <var title="">position</var>
-   is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
-   return an error.</li>
+   <li><p>If the character indicated by <var title="">position</var> is not an <a href=#ascii-digits title="ASCII
+   digits">ASCII digit</a>, then return an error.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
-   resulting sequence as a base-ten integer. Multiply <var title="">value</var> by that integer.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>, and
+   interpret the resulting sequence as a base-ten integer. Multiply <var title="">value</var> by
+   that integer.</li>
 
    <li>If <var title="">position</var> is past the end of <var title="">input</var>, jump to the step labeled
    <i>conversion</i>.</li>
@@ -5172,10 +5181,10 @@
     <ol><li><p>Advance <var title="">position</var> to the next
      character.</li>
 
-     <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, or if the character indicated by <var title="">position</var> is not one of U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9), U+0065 LATIN SMALL LETTER E (e), or U+0045
-     LATIN CAPITAL LETTER E (E), then jump to the step labeled
-     <i>conversion</i>.</li>
+     <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, or if the
+     character indicated by <var title="">position</var> is not an <a href=#ascii-digits title="ASCII digits">ASCII
+     digit</a>, U+0065 LATIN SMALL LETTER E (e), or U+0045 LATIN CAPITAL LETTER E (E), then jump
+     to the step labeled <i>conversion</i>.</li>
 
      <li><p>If the character indicated by <var title="">position</var>
      is a U+0065 LATIN SMALL LETTER E character (e) or a U+0045 LATIN
@@ -5194,9 +5203,8 @@
      <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, then jump to the step labeled
      <i>conversion</i>.</li>
 
-     <li><p>If the character indicated by <var title="">position</var>
-     is one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), jump
-     back to the step labeled <i>fraction loop</i> in these
+     <li><p>If the character indicated by <var title="">position</var> is an <a href=#ascii-digits title="ASCII
+     digits">ASCII digit</a>, jump back to the step labeled <i>fraction loop</i> in these
      substeps.</li>
 
     </ol></li>
@@ -5234,13 +5242,12 @@
 
       </ol></li>
 
-     <li><p>If the character indicated by <var title="">position</var>
-     is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
-     then jump to the step labeled <i>conversion</i>.</li>
+     <li><p>If the character indicated by <var title="">position</var> is not an <a href=#ascii-digits title="ASCII
+     digits">ASCII digit</a>, then jump to the step labeled <i>conversion</i>.</li>
 
-     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-     U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
-     resulting sequence as a base-ten integer. Multiply <var title="">exponent</var> by that integer.</li>
+     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>, and
+     interpret the resulting sequence as a base-ten integer. Multiply <var title="">exponent</var>
+     by that integer.</li>
 
      <li><p>Multiply <var title="">value</var> by ten raised to the
      <var title="">exponent</var>th power.</li>
@@ -5267,13 +5274,10 @@
 <div class=impl>
   <h5 id=percentages-and-dimensions><span class=secno>2.5.4.4 </span>Percentages and lengths</h5>
 <!--(percentages are not used in valid html anymore)
-  <p>A string is a <dfn>valid dimension value</dfn> if it consists of
-  a character in the range U+0031 DIGIT ONE (1) to U+0039 DIGIT NINE
-  (9), optionally followed by zero of more characters in the range
-  U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), optionally followed
-  by a U+002E FULL STOP character (.) and one or more characters in
-  the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and
-  optionally suffixed by a U+0025 PERCENT SIGN character (%).</p>
+  <p>A string is a <dfn>valid dimension value</dfn> if it consists of a character in the range
+  U+0031 DIGIT ONE (1) to U+0039 DIGIT NINE (9), optionally followed by zero of more <span>ASCII
+  digits</span>, optionally followed by a U+002E FULL STOP character (.) and one or more <span>ASCII
+  digits</span>, and optionally suffixed by a U+0025 PERCENT SIGN character (%).</p>
 
   <p>A <span>valid dimension value</span> represents the number that
   is represented in base ten by that string of digits, optionally with
@@ -5317,9 +5321,9 @@
    trailing garbage which we'll ignore, but it's a number, and we
    won't return an error. -->
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
-   resulting sequence as a base-ten integer. Let <var title="">value</var> be that number.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>, and
+   interpret the resulting sequence as a base-ten integer. Let <var title="">value</var> be that
+   number.</li>
 
    <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, return <var title="">value</var> as a
    length.</li>
@@ -5332,9 +5336,9 @@
     <ol><li><p>Advance <var title="">position</var> to the next
      character.</li>
 
-     <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, or if the character indicated by <var title="">position</var> is not one of U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9), then return <var title="">value</var> as a
-     length.</li>
+     <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, or if the
+     character indicated by <var title="">position</var> is not an <a href=#ascii-digits title="ASCII digits">ASCII
+     digit</a>, then return <var title="">value</var> as a length.</li>
 
      <li><p>Let <var title="">divisor</var> have the value 1.</li>
 
@@ -5351,7 +5355,7 @@
      length.</li>
 
      <li><p>If the character indicated by <var title="">position</var>
-     is one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), return
+     is an <a href=#ascii-digits title="ASCII digits">ASCII digit</a>, return
      to the step labeled <i>fraction loop</i> in these
      substeps.</li>
 
@@ -5443,10 +5447,8 @@
 
       </ol></dd>
 
+     <dt>An <a href=#ascii-digits title="ASCII digits">ASCII digit</a></dt>
 
-     <dt>A character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9)</dt>
-
      <dd>
 
       <p>Follow these substeps:</p>
@@ -5678,22 +5680,18 @@
      <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, set <var title="">unit</var> to
      <i>relative</i> and jump to the last substep.</li>
 
-     <li><p>If the character at <var title="">position</var> is a
-     character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE
-     (9), <a href=#collect-a-sequence-of-characters>collect a sequence of characters</a> in the range
-     U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), interpret the
-     resulting sequence as an integer in base ten, and increment <var title="">value</var> by that integer.</li>
+     <li><p>If the character at <var title="">position</var> is an <a href=#ascii-digits title="ASCII digits">ASCII
+     digit</a>, <a href=#collect-a-sequence-of-characters>collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>,
+     interpret the resulting sequence as an integer in base ten, and increment <var title="">value</var> by that integer.</li>
 
      <li>
 
       <p>If the character at <var title="">position</var> is a U+002E
       FULL STOP character (.), run these substeps:</p>
 
-      <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> consisting
-       of <a href=#space-character title="space character">space characters</a> and
-       characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-       NINE (9). Let <var title="">s</var> be the resulting
-       sequence.</li>
+      <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> consisting of <a href=#space-character title="space
+       character">space characters</a> and <a href=#ascii-digits>ASCII digits</a>. Let <var title="">s</var>
+       be the resulting sequence.</li>
 
        <li><p>Remove all <a href=#space-character title="space character">space
        characters</a> in <var title="">s</var>.</li>
@@ -5752,10 +5750,8 @@
   <em>28</em> otherwise. This takes into account leap years in the
   Gregorian calendar. <a href=#refsGREGORIAN>[GREGORIAN]</a></p>
 
-  <p>The <dfn id=concept-datetime-digit title=concept-datetime-digit>digits</dfn> in the date
-  and time syntaxes defined in this section must be characters in the
-  range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), used to
-  express numbers in base ten.</p>
+  <p>When <a href=#ascii-digits>ASCII digits</a> are used in the date and time syntaxes defined in this section,
+  they express numbers in base ten.</p>
 
   <div class=impl>
 
@@ -5780,12 +5776,11 @@
   <var title="">year</var> and month <var title="">month</var> if it
   consists of the following components in the given order:</p>
 
-  <ol><li>Four or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing <var title="">year</var>, where <var title="">year</var> > 0</li>
+  <ol><li>Four or more <a href=#ascii-digits>ASCII digits</a>, representing <var title="">year</var>, where <var title="">year</var> > 0</li>
 
    <li>A U+002D HYPHEN-MINUS character (-)</li>
 
-   <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing the month <var title="">month</var>, in the range
+   <li>Two <a href=#ascii-digits>ASCII digits</a>, representing the month <var title="">month</var>, in the range
    1 ≤ <var title="">month</var> ≤ 12</li>
 
   </ol><div class=impl>
@@ -5814,11 +5809,9 @@
   nothing. If at any point the algorithm says that it "fails", this
   means that it is aborted at that point and returns nothing.</p>
 
-  <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not at least four characters long, then
-   fail. Otherwise, interpret the resulting sequence as a base-ten
-   integer. Let that number be the <var title="">year</var>.</li>
+  <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not at least four characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">year</var>.</li>
 
    <li><p>If <var title="">year</var> is not a number greater than
    zero, then fail.</li>
@@ -5827,11 +5820,9 @@
    then fail. Otherwise, move <var title="">position</var> forwards
    one character.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">month</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">month</var>.</li>
 
    <li><p>If <var title="">month</var> is not a number in the range
    1 ≤ <var title="">month</var> ≤ 12, then
@@ -5857,10 +5848,9 @@
 
    <li>A U+002D HYPHEN-MINUS character (-)</li>
 
-   <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing <var title="">day</var>, in the range
-   1 ≤ <var title="">day</var> ≤ <var title="">maxday</var> where <var title="">maxday</var> is the <a href=#number-of-days-in-month-month-of-year-year title="number of days in month month of year year">number of days
-   in the month <var title="">month</var> and year <var title="">year</var></a></li>
+   <li>Two <a href=#ascii-digits>ASCII digits</a>, representing <var title="">day</var>, in the range
+   1 ≤ <var title="">day</var> ≤ <var title="">maxday</var> where <var title="">maxday</var> is the <a href=#number-of-days-in-month-month-of-year-year title="number of days in month month of year year">number of
+   days in the month <var title="">month</var> and year <var title="">year</var></a></li>
 
   </ol><div class=impl>
 
@@ -5899,11 +5889,9 @@
    then fail. Otherwise, move <var title="">position</var> forwards
    one character.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">day</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">day</var>.</li>
 
    <li><p>If <var title="">day</var> is not a number in the range
    1 ≤ <var title="">day</var> ≤ <var title="">maxday</var>, then fail.</li>
@@ -5926,17 +5914,15 @@
 
   <ol><li>Optionally, two U+002D HYPHEN-MINUS characters (-)</li>
 
-   <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing the month <var title="">month</var>, in the range
+   <li>Two <a href=#ascii-digits>ASCII digits</a>, representing the month <var title="">month</var>, in the range
    1 ≤ <var title="">month</var> ≤ 12</li>
 
    <li>A U+002D HYPHEN-MINUS character (-)</li>
 
-   <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing <var title="">day</var>, in the range
+   <li>Two <a href=#ascii-digits>ASCII digits</a>, representing <var title="">day</var>, in the range
    1 ≤ <var title="">day</var> ≤ <var title="">maxday</var> where <var title="">maxday</var> is the <a href=#number-of-days-in-month-month-of-year-year title="number of days in month month of year year">number of
-   days</a> in the month <var title="">month</var> and any
-   arbitrary leap year (e.g. 4 or 2000)</li>
+   days</a> in the month <var title="">month</var> and any arbitrary leap year (e.g. 4 or
+   2000)</li>
 
   </ol><p class=note>In other words, if the <var title="">month</var> is
   "<code title="">02</code>", meaning February, then the day can be
@@ -5973,11 +5959,9 @@
    U+002D HYPHEN-MINUS characters (-). If the collected sequence is
    not exactly zero or two characters long, then fail.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">month</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">month</var>.</li>
 
    <li><p>If <var title="">month</var> is not a number in the range
    1 ≤ <var title="">month</var> ≤ 12, then
@@ -5992,11 +5976,9 @@
    then fail. Otherwise, move <var title="">position</var> forwards
    one character.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">day</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">day</var>.</li>
 
    <li><p>If <var title="">day</var> is not a number in the range
    1 ≤ <var title="">day</var> ≤ <var title="">maxday</var>, then fail.</li>
@@ -6017,14 +5999,12 @@
   second <var title="">second</var> if it consists of the following
   components in the given order:</p>
 
-  <ol><li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing <var title="">hour</var>, in the range
+  <ol><li>Two <a href=#ascii-digits>ASCII digits</a>, representing <var title="">hour</var>, in the range
    0 ≤ <var title="">hour</var> ≤ 23</li>
 
    <li>A U+003A COLON character (:)</li>
 
-   <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing <var title="">minute</var>, in the range
+   <li>Two <a href=#ascii-digits>ASCII digits</a>, representing <var title="">minute</var>, in the range
    0 ≤ <var title="">minute</var> ≤ 59</li>
 
    <li>Optionally (required if <var title="">second</var> is
@@ -6032,17 +6012,15 @@
 
     <ol><li>A U+003A COLON character (:)</li>
 
-     <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-     representing the integer part of <var title="">second</var>, in
-     the range 0 ≤ <var title="">s</var> ≤ 59</li>
+     <li>Two <a href=#ascii-digits>ASCII digits</a>, representing the integer part of <var title="">second</var>,
+     in the range 0 ≤ <var title="">s</var> ≤ 59</li>
 
      <li>Optionally (required if <var title="">second</var> is not an
      integer):
 
       <ol><li>A 002E FULL STOP character (.)</li>
 
-       <li>One, two, or three <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing the
-       fractional part of <var title="">second</var></li>
+       <li>One, two, or three <a href=#ascii-digits>ASCII digits</a>, representing the fractional part of <var title="">second</var></li>
 
       </ol></li>
 
@@ -6079,11 +6057,9 @@
   or nothing. If at any point the algorithm says that it "fails", this
   means that it is aborted at that point and returns nothing.</p>
 
-  <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">hour</var>.</li>
+  <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">hour</var>.</li>
 
    <li>If <var title="">hour</var> is not a number in the range
    0 ≤ <var title="">hour</var> ≤ 23, then
@@ -6093,11 +6069,9 @@
    fail. Otherwise, move <var title="">position</var> forwards one
    character.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">minute</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">minute</var>.</li>
 
    <li>If <var title="">minute</var> is not a number in the range
    0 ≤ <var title="">minute</var> ≤ 59, then
@@ -6115,18 +6089,15 @@
     <ol><li><p>Advance <var title="">position</var> to the next character
      in <var title="">input</var>.</li>
 
-     <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var>, or at the last character in <var title="">input</var>, or if the next <em>two</em> characters in
-     <var title="">input</var> starting at <var title="">position</var> are not two characters both in the range
-     U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
-     fail.</li>
+     <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var>, or at
+     the last character in <var title="">input</var>, or if the next <em>two</em> characters in <var title="">input</var> starting at <var title="">position</var> are not both <a href=#ascii-digits>ASCII
+     digits</a>, then fail.</li>
 
-     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are
-     either characters in the range U+0030 DIGIT ZERO (0) to U+0039
-     DIGIT NINE (9) or U+002E FULL STOP characters. If the collected
-     sequence is three characters long, or if it is longer than three
-     characters long and the third character is not a U+002E FULL STOP
-     character, or if it has more than one U+002E FULL STOP character,
-     then fail. Otherwise, let the collected string be <var title="">second</var> instead of its previous value.</li>
+     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are either <a href=#ascii-digits>ASCII digits</a>
+     or U+002E FULL STOP characters. If the collected sequence is three characters long, or if it is
+     longer than three characters long and the third character is not a U+002E FULL STOP character,
+     or if it has more than one U+002E FULL STOP character, then fail. Otherwise, let the collected
+     string be <var title="">second</var> instead of its previous value.</li>
 
     </ol></li>
 
@@ -6228,15 +6199,12 @@
      <!-- the -00:00 offset is disallowed because RFC3339 gives it a
      special semantic -->
 
-     <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-     representing the hours component <var title="">hour</var> of
+     <li>Two <a href=#ascii-digits>ASCII digits</a>, representing the hours component <var title="">hour</var> of
      the time-zone offset, in the range 0 ≤ <var title="">hour</var> ≤ 23</li>
 
      <li>Optionally, a U+003A COLON character (:)</li>
 
-     <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-     representing the minutes component <var title="">minute</var>
-     of the time-zone offset, in the range 0 ≤ <var title="">minute</var> ≤ 59</li>
+     <li>Two <a href=#ascii-digits>ASCII digits</a>, representing the minutes component <var title="">minute</var> of the time-zone offset, in the range 0 ≤ <var title="">minute</var> ≤ 59</li>
 
     </ol></li>
 
@@ -6305,8 +6273,8 @@
      <li><p>Advance <var title="">position</var> to the next character
      in <var title="">input</var>.</li>
 
-     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-     U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). Let <var title="">s</var> be the collected sequence.</li>
+     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. Let
+     <var title="">s</var> be the collected sequence.</li>
 
      <li>
 
@@ -6321,11 +6289,9 @@
        fail. Otherwise, move <var title="">position</var> forwards one
        character.</li>
 
-       <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-       U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-       sequence is not exactly two characters long, then
-       fail. Otherwise, interpret the resulting sequence as a base-ten
-       integer. Let that number be the <var title="">timezone<sub title="">minutes</sub></var>.</li>
+       <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If
+       the collected sequence is not exactly two characters long, then fail. Otherwise, interpret
+       the resulting sequence as a base-ten integer. Let that number be the <var title="">timezone<sub title="">minutes</sub></var>.</li>
 
       </ol><p>If <var title="">s</var> is exactly four characters long,
       then run these substeps:</p>
@@ -6544,16 +6510,14 @@
   week-year <var title="">year</var> and week <var title="">week</var>
   if it consists of the following components in the given order:</p>
 
-  <ol><li>Four or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing <var title="">year</var>, where <var title="">year</var> > 0</li>
+  <ol><li>Four or more <a href=#ascii-digits>ASCII digits</a>, representing <var title="">year</var>, where <var title="">year</var> > 0</li>
 
    <li>A U+002D HYPHEN-MINUS character (-)</li>
 
    <li>A U+0057 LATIN CAPITAL LETTER W character (W)</li>
 
-   <li>Two <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>,
-   representing the week <var title="">week</var>, in the range
-   1 ≤ <var title="">week</var> ≤ <var title="">maxweek</var>, where <var title="">maxweek</var> is the
-   <a href=#week-number-of-the-last-day>week number of the last day</a> of week-year <var title="">year</var></li>
+   <li>Two <a href=#ascii-digits>ASCII digits</a>, representing the week <var title="">week</var>, in the range
+   1 ≤ <var title="">week</var> ≤ <var title="">maxweek</var>, where <var title="">maxweek</var> is the <a href=#week-number-of-the-last-day>week number of the last day</a> of week-year <var title="">year</var></li>
 
   </ol><div class=impl>
 
@@ -6568,11 +6532,9 @@
    <li><p>Let <var title="">position</var> be a pointer into <var title="">input</var>, initially pointing at the start of the
    string.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not at least four characters long, then
-   fail. Otherwise, interpret the resulting sequence as a base-ten
-   integer. Let that number be the <var title="">year</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not at least four characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">year</var>.</li>
 
    <li><p>If <var title="">year</var> is not a number greater than
    zero, then fail.</li>
@@ -6584,11 +6546,9 @@
    <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var> or if the character at <var title="">position</var> is not a U+0057 LATIN CAPITAL LETTER W
    character (W), then fail. Otherwise, move <var title="">position</var> forwards one character.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">week</var>.</li>
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var title="">week</var>.</li>
 
    <li><p>Let <var title="">maxweek</var> be the <a href=#week-number-of-the-last-day>week number of
    the last day</a> of year <var title="">year</var>.</li>
@@ -6649,42 +6609,33 @@
     corresponds to the same number of seconds as in <var title="">t</var>:</p>
 
     <ol><!--MONTHS:
-     <li><p>One or more <span
-     title="concept-datetime-digit">digits</span> followed by a U+0059
-     LATIN CAPITAL LETTER Y character, representing a number of
-     years.</p></li>
+     <li><p>One or more <span>ASCII digits</span> followed by a U+0059 LATIN CAPITAL LETTER Y
+     character, representing a number of years.</p></li>
 
-     <li><p>One or more <span
-     title="concept-datetime-digit">digits</span> followed by a U+004D
-     LATIN CAPITAL LETTER M character, representing a number of
-     months.</p></li>
---><li><p>One or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a> followed by a U+0044
-     LATIN CAPITAL LETTER D character, representing a number of
-     days.</li>
+     <li><p>One or more <span>ASCII digits</span> followed by a U+004D LATIN CAPITAL LETTER M
+     character, representing a number of months.</p></li>
+--><li><p>One or more <a href=#ascii-digits>ASCII digits</a> followed by a U+0044 LATIN CAPITAL LETTER D
+     character, representing a number of days.</li>
 
      <li>
 
       <p>A U+0054 LATIN CAPITAL LETTER T character followed by one or
       more of the following subcomponents, in the order given:</p>
 
-      <ol><li><p>One or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a> followed by a
-       U+0048 LATIN CAPITAL LETTER H character, representing a number
-       of hours.</li>
+      <ol><li><p>One or more <a href=#ascii-digits>ASCII digits</a> followed by a U+0048 LATIN CAPITAL LETTER H
+       character, representing a number of hours.</li>
 
-       <li><p>One or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a> followed by a
-       U+004D LATIN CAPITAL LETTER M character, representing a number
-       of minutes.</li>
+       <li><p>One or more <a href=#ascii-digits>ASCII digits</a> followed by a U+004D LATIN CAPITAL LETTER M
+       character, representing a number of minutes.</li>
 
        <li>
 
         <p>The following components:</p>
 
-        <ol><li><p>One or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing a
-         number of seconds.</li>
+        <ol><li><p>One or more <a href=#ascii-digits>ASCII digits</a>, representing a number of seconds.</li>
 
-         <li><p>Optionally, a U+002E FULL STOP character (.) followed
-         by one, two, or three <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing a
-         fraction of a second.</li>
+         <li><p>Optionally, a U+002E FULL STOP character (.) followed by one, two, or three
+         <a href=#ascii-digits>ASCII digits</a>, representing a fraction of a second.</li>
 
          <li><p>A U+0053 LATIN CAPITAL LETTER S character.</li>
 
@@ -6711,15 +6662,13 @@
     <ol><li><p>Zero or more <a href=#space-character title="space character">space
      characters</a>.</li>
 
-     <li><p>One or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing a
-     number of time units, scaled by the <a href=#duration-time-component-scale>duration time component
-     scale</a> specified (see below) to represent a number of
+     <li><p>One or more <a href=#ascii-digits>ASCII digits</a>, representing a number of time units, scaled by
+     the <a href=#duration-time-component-scale>duration time component scale</a> specified (see below) to represent a number of
      seconds.</li>
 
-     <li><p>If the <a href=#duration-time-component-scale>duration time component scale</a>
-     specified is 1 (i.e. the units are seconds), then, optionally, a
-     U+002E FULL STOP character (.) followed by one, two, or three <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, representing a
-     fraction of a second.</li>
+     <li><p>If the <a href=#duration-time-component-scale>duration time component scale</a> specified is 1 (i.e. the units are
+     seconds), then, optionally, a U+002E FULL STOP character (.) followed by one, two, or three
+     <a href=#ascii-digits>ASCII digits</a>, representing a fraction of a second.</li>
 
      <li><p>Zero or more <a href=#space-character title="space character">space
      characters</a>.</li>
@@ -6841,12 +6790,9 @@
       not advance <var title="">position</var>. That is taken care of
       below.)</p>
 
-      <p>Otherwise, if <var title="">next character</var> is a
-      character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-      NINE (9), then <a href=#collect-a-sequence-of-characters>collect a sequence of characters</a> in
-      the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
-      interpret the resulting sequence as a base-ten integer, and let
-      <var title="">N</var> be that number.</p>
+      <p>Otherwise, if <var title="">next character</var> is an <a href=#ascii-digits title="ASCII digits">ASCII
+      digit</a>, then <a href=#collect-a-sequence-of-characters>collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII
+      digits</a>, interpret the resulting sequence as a base-ten integer, and let <var title="">N</var> be that number.</p>
 
       <p>Otherwise <var title="">next character</var> is not part of a
       number; fail.</p>
@@ -6864,8 +6810,7 @@
       <p>If <var title="">next character</var> is a U+002E FULL STOP
       character (.), then run these substeps:</p>
 
-      <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the
-       range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). Let <var title="">s</var> be the resulting sequence.</li>
+      <ol><li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>. Let <var title="">s</var> be the resulting sequence.</li>
 
        <li><p>If <var title="">s</var> is the empty string, then
        fail.</li>
@@ -7085,15 +7030,11 @@
   range 0..255, representing the red, green, and blue components of
   the color respectively, in the sRGB color space. <a href=#refsSRGB>[SRGB]</a></p>
 
-  <p>A string is a <dfn id=valid-simple-color>valid simple color</dfn> if it is exactly
-  seven characters long, and the first character is a U+0023 NUMBER
-  SIGN character (#), and the remaining six characters are all in the
-  range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0041 LATIN
-  CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F, U+0061 LATIN
-  SMALL LETTER A to U+0066 LATIN SMALL LETTER F, with the first two
-  digits representing the red component, the middle two digits
-  representing the green component, and the last two digits
-  representing the blue component, in hexadecimal.</p>
+  <p>A string is a <dfn id=valid-simple-color>valid simple color</dfn> if it is exactly seven characters long, and the
+  first character is a U+0023 NUMBER SIGN character (#), and the remaining six characters are all
+  <a href=#ascii-hex-digits>ASCII hex digits</a>, with the first two digits representing the red component, the
+  middle two digits representing the green component, and the last two digits representing the blue
+  component, in hexadecimal.</p>
 
   <p>A string is a <dfn id=valid-lowercase-simple-color>valid lowercase simple color</dfn> if it is a
   <a href=#valid-simple-color>valid simple color</a> and doesn't use any characters in
@@ -7117,11 +7058,8 @@
    <li><p>If the first character in <var title="">input</var> is not a
    U+0023 NUMBER SIGN character (#), then return an error.</li>
 
-   <li><p>If the last six characters of <var title="">input</var> are
-   not all in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE
-   (9), U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER
-   F, U+0061 LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F, then
-   return an error.</li>
+   <li><p>If the last six characters of <var title="">input</var> are not all <a href=#ascii-hex-digits>ASCII hex
+   digits</a>, then return an error.</li>
 
    <li><p>Let <var title="">result</var> be a <a href=#simple-color>simple
    color</a>.</p>
@@ -7144,12 +7082,9 @@
   <ol><li><p>Let <var title="">result</var> be a string consisting of a
    single U+0023 NUMBER SIGN character (#).</li>
 
-   <li><p>Convert the red, green, and blue components in turn to
-   two-digit hexadecimal numbers using the digits U+0030 DIGIT ZERO
-   (0) to U+0039 DIGIT NINE (9) and U+0061 LATIN SMALL LETTER A
-   to U+0066 LATIN SMALL LETTER F, zero-padding if necessary, and
-   append these numbers to <var title="">result</var>, in the order
-   red, green, blue.</p>
+   <li><p>Convert the red, green, and blue components in turn to two-digit hexadecimal numbers using
+   <a href=#lowercase-ascii-hex-digits>lowercase ASCII hex digits</a>, zero-padding if necessary, and append these numbers to
+   <var title="">result</var>, in the order red, green, blue.</p>
 
    <li><p>Return <var title="">result</var>, which will be a
    <a href=#valid-lowercase-simple-color>valid lowercase simple color</a>.</li>
@@ -7190,12 +7125,8 @@
 
    <li>
 
-    <p>If <var title="">input</var> is four characters long, and the
-    first character in <var title="">input</var> is a U+0023 NUMBER
-    SIGN character (#), and the last three characters of <var title="">input</var> are all in the range U+0030 DIGIT ZERO (0)
-    to U+0039 DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+0046
-    LATIN CAPITAL LETTER F, and U+0061 LATIN SMALL LETTER A to U+0066
-    LATIN SMALL LETTER F, then run these substeps:</p>
+    <p>If <var title="">input</var> is four characters long, and the first character in <var title="">input</var> is a U+0023 NUMBER SIGN character (#), and the last three characters of
+    <var title="">input</var> are all <a href=#ascii-hex-digits>ASCII hex digits</a>, then run these substeps:</p>
 
     <ol><li><p>Let <var title="">result</var> be a <a href=#simple-color>simple
      color</a>.</p>
@@ -7228,11 +7159,8 @@
    <li><p>If the first character in <var title="">input</var> is a
    U+0023 NUMBER SIGN character (#), remove it.</li>
 
-   <li><p>Replace any character in <var title="">input</var> that is
-   not in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
-   U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F, and
-   U+0061 LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F with the
-   character U+0030 DIGIT ZERO (0).</li>
+   <li><p>Replace any character in <var title="">input</var> that is not an <a href=#ascii-hex-digits title="ASCII hex
+   digits">ASCII hex digit</a> with the character U+0030 DIGIT ZERO (0).</li>
 
    <li><p>While <var title="">input</var>'s length is zero or not a
    multiple of three, append a U+0030 DIGIT ZERO (0) character to <var title="">input</var>.</li>
@@ -8224,7 +8152,7 @@
      <td><a href=#concept-uda-input title=concept-uda-input>input</a> is an <a href=#authority-based-url>authority-based URL</a>, and contained a <a href=#url-port title=url-port><port></a> component (possibly an empty one)
      <td>—
      <td>—
-     <td>Remove all characters in the new value from the first that is not in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), if any.
+     <td>Remove all characters in the new value from the first that is not an <a href=#ascii-digits title="ASCII digits">ASCII digit</a>, if any.
          Remove any leading U+0030 DIGIT ZERO characters (0) in the new value.
          If the resulting string is empty, set it to a single U+0030 DIGIT ZERO character (0).
      <td><a href=#concept-uda-input title=concept-uda-input>input</a> is an <a href=#authority-based-url>authority-based URL</a>,
@@ -10432,13 +10360,10 @@
 
    <li> The seconds component of the time. </li>
 
-  </ol><p>All the numeric components above, other than the year, must be
-  given as two digits in the range U+0030 DIGIT ZERO (0) to U+0039
-  DIGIT NINE (9) representing the number in base ten, zero-padded if
-  necessary. The year must be given as the shortest possible string of
-  four or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
-  DIGIT NINE (9) representing the number in base ten, zero-padded if
-  necessary.</p>
+  </ol><p>All the numeric components above, other than the year, must be given as two <a href=#ascii-digits>ASCII
+  digits</a> representing the number in base ten, zero-padded if necessary. The year must be
+  given as the shortest possible string of four or more <a href=#ascii-digits>ASCII digits</a> representing the
+  number in base ten, zero-padded if necessary.</p>
 
   <p>The <code><a href=#document>Document</a></code>'s source file's last modification date
   and time must be derived from relevant features of the networking
@@ -12113,8 +12038,7 @@
   <p>A <dfn id=custom-data-attribute>custom data attribute</dfn> is an attribute in no
   namespace whose name starts with the string "<dfn id=attr-data-* title=attr-data-*><code>data-</code></dfn>", has at least one
   character after the hyphen, is <a href=#xml-compatible>XML-compatible</a>, and
-  contains no characters in the range U+0041 to U+005A (LATIN CAPITAL
-  LETTER A to LATIN CAPITAL LETTER Z).</p>
+  contains no <a href=#uppercase-ascii-letters>uppercase ASCII letters</a>.</p>
 
   <p class=note>All attribute names on <a href=#html-elements>HTML elements</a> in
   <a href=#html-documents>HTML documents</a> get ASCII-lowercased automatically, so
@@ -12182,19 +12106,14 @@
 
      <li>For each content attribute on the element whose first five
      characters are the string "<code title="">data-</code>" and whose
-     remaining characters (if any) do not include any characters in
-     the range U+0041 to U+005A (LATIN CAPITAL LETTER A to LATIN
-     CAPITAL LETTER Z), add a name-value pair to <var title="">list</var> whose name is the attribute's name with the
+     remaining characters (if any) do not include any <a href=#uppercase-ascii-letters>uppercase ASCII letters</a>, add a name-value pair to <var title="">list</var> whose name is the attribute's name with the
      first five characters removed and whose value is the attribute's
      value.</li>
 
-     <li>For each name <var title="">list</var>, for each U+002D
-     HYPHEN-MINUS character (-) in the name that is followed by a
-     character in the range U+0061 to U+007A (U+0061 LATIN SMALL
-     LETTER A to U+007A LATIN SMALL LETTER Z), remove the U+002D
-     HYPHEN-MINUS character (-) and replace the character that
-     followed it by the same character <a href=#converted-to-ascii-uppercase>converted to ASCII
-     uppercase</a>.</li>
+     <li>For each name <var title="">list</var>, for each U+002D HYPHEN-MINUS character (-) in the
+     name that is followed by a <a href=#lowercase-ascii-letters title="lowercase ASCII letters">lowercase ASCII letter</a>,
+     remove the U+002D HYPHEN-MINUS character (-) and replace the character that followed it by the
+     same character <a href=#converted-to-ascii-uppercase>converted to ASCII uppercase</a>.</li>
 
      <li>Return <var title="">list</var>.</li>
 
@@ -12209,14 +12128,11 @@
      <li>Let <var title="">value</var> be the value passed to the
      algorithm.</li>
 
-     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS
-     character (-) followed by a character in the range U+0061 to
-     U+007A (U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
-     Z), throw a <code><a href=#syntaxerror>SyntaxError</a></code> exception and abort these
-     steps.</li>
+     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS character (-) followed by a
+     <a href=#lowercase-ascii-letters title="lowercase ASCII letters">lowercase ASCII letter</a>, throw a
+     <code><a href=#syntaxerror>SyntaxError</a></code> exception and abort these steps.</li>
 
-     <li>For each character in the range U+0041 to U+005A (U+0041
-     LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z) in <var title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
+     <li>For each <a href=#uppercase-ascii-letters title="uppercase ASCII letters">uppercase ASCII letter</a> in <var title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
      before the character and replace the character with the same
      character <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>.</li>
 
@@ -12237,14 +12153,11 @@
     <ol><li>Let <var title="">name</var> be the name passed to the
      algorithm.</li>
 <!--(can't happen while the DOMStringMap deleter has no name)
-     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS
-     character (-) followed by a character in the range U+0061 to
-     U+007A (U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
-     Z), throw a <code>SyntaxError</code> exception and abort these
-     steps.</li>
+     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS character (-) followed by a
+     <span title="lowercase ASCII letters">lowercase ASCII letter</span>, throw a
+     <code>SyntaxError</code> exception and abort these steps.</li>
 -->
-     <li>For each character in the range U+0041 to U+005A (U+0041
-     LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z) in <var title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
+     <li>For each <a href=#uppercase-ascii-letters title="uppercase ASCII letters">uppercase ASCII letter</a> in <var title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
      before the character and replace the character with the same
      character <a href=#converted-to-ascii-lowercase>converted to ASCII lowercase</a>.</li>
 
@@ -15677,8 +15590,7 @@
 
      <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
 
-     <li><p><a href=#collect-a-sequence-of-characters title="collect a sequence of characters">Collect a
-     sequence of characters</a> that are not<!--neither--> <a href=#space-character title="space character">space characters</a><!-- nor a U+002C
+     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are not<!--neither--> <a href=#space-character title="space character">space characters</a><!-- nor a U+002C
      COMMA character (,)-->.</li>
 
      <li><p>Set the <a href=#pragma-set-default-language>pragma-set default language</a> to the
@@ -15768,18 +15680,13 @@
 
      <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
 
-     <li><p><a href=#collect-a-sequence-of-characters title="collect a sequence of characters">Collect a
-     sequence of characters</a> in the range U+0030 DIGIT ZERO (0)
-     to U+0039 DIGIT NINE (9), and parse the resulting string using
-     the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative integers</a>. If the
-     sequence of characters collected is the empty string, then no
-     number will have been parsed; abort these steps. Otherwise, let
-     <var title="">time</var> be the parsed number.</li>
+     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>, and
+     parse the resulting string using the <a href=#rules-for-parsing-non-negative-integers>rules for parsing non-negative integers</a>. If
+     the sequence of characters collected is the empty string, then no number will have been parsed;
+     abort these steps. Otherwise, let <var title="">time</var> be the parsed number.</li>
 
-     <li><p><a href=#collect-a-sequence-of-characters title="collect a sequence of characters">Collect a
-     sequence of characters</a> in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9) and U+002E FULL STOP (.). Ignore any collected
-     characters.</li>
+     <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a> and
+     U+002E FULL STOP characters (.). Ignore any collected characters.</li>
 
      <li><p><a href=#skip-whitespace>Skip whitespace</a>.</li>
 
@@ -21250,10 +21157,9 @@
      Otherwise, let <var title="">x</var> and <var title="">y</var> be zero.</li>
 
      <li>Let the <dfn id=hyperlink-suffix><var>hyperlink suffix</var></dfn> be a U+003F QUESTION MARK character, the
-     value of <var title="">x</var> expressed as a base-ten integer using ASCII digits, a U+002C
-     COMMA character (,), and the value of <var title="">y</var> expressed as a base-ten integer
-     using ASCII digits. ASCII digits are the characters in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9).</li>
+     value of <var title="">x</var> expressed as a base-ten integer using <a href=#ascii-digits>ASCII digits</a>,
+     a U+002C COMMA character (,), and the value of <var title="">y</var> expressed as a base-ten
+     integer using <a href=#ascii-digits>ASCII digits</a>.</li>
 
     </ol></li>
 
@@ -22230,7 +22136,7 @@
    </dd>
 
 
-   <dt>Four or more <a href=#concept-datetime-digit title=concept-datetime-digit>digits</a>, at least one of which is not U+0030 DIGIT ZERO (0)</dt>
+   <dt>Four or more <a href=#ascii-digits>ASCII digits</a>, at least one of which is not U+0030 DIGIT ZERO (0)</dt>
 
    <dd>
 
@@ -22298,12 +22204,9 @@
    returns a <a href=#concept-week title=concept-week>week</a>, that is the
    machine-readable equivalent; abort these steps.</li>
 
-   <li><p>If the element's <a href=#datetime-value>datetime value</a> consists of
-   only characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-   NINE (9), at least one of which is not U+0030 DIGIT ZERO (0),
-   then the machine-readable equivalent is the base-ten
-   interpretation of those digits, representing a year; abort these
-   steps.</li>
+   <li><p>If the element's <a href=#datetime-value>datetime value</a> consists of only <a href=#ascii-digits>ASCII digits</a>,
+   at least one of which is not U+0030 DIGIT ZERO (0), then the machine-readable equivalent is the
+   base-ten interpretation of those digits, representing a year; abort these steps.</li>
 
    <li><p>If <a href=#parse-a-duration-string title="parse a duration string">parsing a duration
    string</a> from the element's <a href=#datetime-value>datetime value</a>
@@ -27310,8 +27213,7 @@
   <p>Any namespace-less attribute other than <code title=attr-embed-name><a href=#attr-embed-name>name</a></code>, <code title=attr-embed-align><a href=#attr-embed-align>align</a></code>, <code title=attr-embed-hspace><a href=#attr-embed-hspace>hspace</a></code>, and <code title=attr-embed-vspace><a href=#attr-embed-vspace>vspace</a></code> <!-- when editing, see also
   note below --> may be specified on the <code><a href=#the-embed-element>embed</a></code> element,
   so long as its name is <a href=#xml-compatible>XML-compatible</a> and contains no
-  characters in the range U+0041 to U+005A (LATIN CAPITAL LETTER A to
-  LATIN CAPITAL LETTER Z). These attributes are then passed as
+  <a href=#uppercase-ascii-letters>uppercase ASCII letters</a>. These attributes are then passed as
   parameters to the <a href=#plugin>plugin</a>.</p>
 
   <p class=note>All attributes in <a href=#html-documents>HTML documents</a> get
@@ -34202,9 +34104,7 @@
      track dispatch type</a> must be set to the concatenation of
      the <var title="">stream type</var> byte and the zero or more
      <var title="">descriptor bytes</var> bytes, expressed in
-     hexadecimal using characters in the ranges U+0030 DIGIT ZERO (0)
-     to U+0039 DIGIT NINE (9) and U+0041 LATIN CAPITAL LETTER A to
-     U+0046 LATIN CAPITAL LETTER F.
+     hexadecimal using <a href=#uppercase-ascii-hex-digits>uppercase ASCII hex digits</a>.
      <a href=#refsMPEG2>[MPEG2]</a>
 
      </dd>
@@ -39053,31 +38953,24 @@
   therefore only useful for assigning to other attributes or for
   comparison to other gradients or patterns.)</p>
 
-  <p>The <dfn id=serialization-of-a-color>serialization of a color</dfn> for a color value is a
-  string, computed as follows: if it has alpha equal to 1.0, then the
-  string is a lowercase six-digit hex value, prefixed with a "#"
-  character (U+0023 NUMBER SIGN), with the first two digits
-  representing the red component, the next two digits representing the
-  green component, and the last two digits representing the blue
-  component, the digits being in the range 0-9 a-f (U+0030 to U+0039
-  and U+0061 to U+0066). Otherwise, the color value has alpha less
-  than 1.0, and the string is the color value in the CSS <code title="">rgba()</code> functional-notation format: the literal
-  string <code title="">rgba</code> (U+0072 U+0067 U+0062 U+0061)
-  followed by a U+0028 LEFT PARENTHESIS, a base-ten integer in the
-  range 0-255 representing the red component (using digits 0-9, U+0030
-  to U+0039, in the shortest form possible), a literal U+002C COMMA
-  and U+0020 SPACE, an integer for the green component, a comma and a
-  space, an integer for the blue component, another comma and space, a
-  U+0030 DIGIT ZERO, if the alpha value is greater than zero then a
-  U+002E FULL STOP (representing the decimal point), if the alpha
-  value is greater than zero then one or more digits in the range 0-9
-  (U+0030 to U+0039) representing the fractional part of the alpha<!--
-  value with no trailing zeros (implied by next sentence)-->, and
-  finally a U+0029 RIGHT PARENTHESIS. User agents must express the
-  fractional part of the alpha value, if any, with the level of
-  precision necessary for the alpha value, when reparsed, to be
-  interpreted as the same alpha value.</p> <!-- if people complain
-  this is unreadable, expand it into a <dl> with two nested <ol>s -->
+  <p>The <dfn id=serialization-of-a-color>serialization of a color</dfn> for a color value is a string, computed as follows: if
+  it has alpha equal to 1.0, then the string is a lowercase six-digit hex value, prefixed with a "#"
+  character (U+0023 NUMBER SIGN), with the first two digits representing the red component, the next
+  two digits representing the green component, and the last two digits representing the blue
+  component, the digits being <a href=#lowercase-ascii-hex-digits>lowercase ASCII hex digits</a>. Otherwise, the color value
+  has alpha less than 1.0, and the string is the color value in the CSS <code title="">rgba()</code>
+  functional-notation format: the literal string <code title="">rgba</code> (U+0072 U+0067 U+0062
+  U+0061) followed by a U+0028 LEFT PARENTHESIS, a base-ten integer in the range 0-255 representing
+  the red component (using <a href=#ascii-digits>ASCII digits</a> in the shortest form possible), a literal
+  U+002C COMMA and U+0020 SPACE, an integer for the green component, a comma and a space, an integer
+  for the blue component, another comma and space, a U+0030 DIGIT ZERO, if the alpha value is
+  greater than zero then a U+002E FULL STOP (representing the decimal point), if the alpha value is
+  greater than zero then one or more <a href=#ascii-digits>ASCII digits</a> representing the fractional part of
+  the alpha<!-- value with no trailing zeros (implied by next sentence)-->, and finally a U+0029
+  RIGHT PARENTHESIS. User agents must express the fractional part of the alpha value, if any, with
+  the level of precision necessary for the alpha value, when reparsed, to be interpreted as the same
+  alpha value.</p> <!-- if people complain this is unreadable, expand it into a <dl> with two nested
+  <ol>s -->
 
   <p>When the context is created, the <code title=dom-context-2d-fillStyle><a href=#dom-context-2d-fillstyle>fillStyle</a></code> and <code title=dom-context-2d-strokeStyle><a href=#dom-context-2d-strokestyle>strokeStyle</a></code> attributes
   must initially have the string value <code title="">#000000</code>.</p>
@@ -57922,17 +57815,10 @@
       <p>If there isn't one, do nothing. Otherwise, proceed as
       follows:</p>
 
-      <p>If <var title="">submitter</var> is an <code><a href=#the-input-element>input</a></code>
-      element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code>
-      attribute is in the <a href="#image-button-state-(type=image)" title=attr-input-type-image>Image
-      Button</a> state, then let <var title="">result</var> be the
-      string formed by concatenating the <a href=#concept-input-type-image-coordinate title=concept-input-type-image-coordinate>selected
-      coordinate</a>'s <var title="">x</var>-component, expressed
-      as a base-ten number using the characters U+0030 DIGIT ZERO (0)
-      to U+0039 DIGIT NINE (9) to represent the digits 0 to 9, a
+      <p>If <var title="">submitter</var> is an <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in the <a href="#image-button-state-(type=image)" title=attr-input-type-image>Image Button</a> state, then let <var title="">result</var>
+      be the string formed by concatenating the <a href=#concept-input-type-image-coordinate title=concept-input-type-image-coordinate>selected coordinate</a>'s <var title="">x</var>-component, expressed as a base-ten number using <a href=#ascii-digits>ASCII digits</a>, a
       U+002C COMMA character (,), and the <a href=#concept-input-type-image-coordinate title=concept-input-type-image-coordinate>selected
-      coordinate</a>'s <var title="">y</var>-component, expressed
-      in the same way as the <var title="">x</var>-component.</p>
+      coordinate</a>'s <var title="">y</var>-component, expressed in the same way as the <var title="">x</var>-component.</p>
 
       <p>Otherwise, if <var title="">submitter</var> has a <a href=#concept-fe-value title=concept-fe-value>value</a>, then let <var title="">result</var> be that <a href=#concept-fe-value title=concept-fe-value>value</a>.</p>
 
@@ -58224,8 +58110,7 @@
      cannot be expressed using the selected character encoding,
      replace the character by a string consisting of a U+0026
      AMPERSAND character (&), a U+0023 NUMBER SIGN character (#),
-     one or more characters in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9) representing the Unicode code point of the
+     one or more <a href=#ascii-digits>ASCII digits</a> representing the Unicode code point of the
      character in base ten, and finally a U+003B SEMICOLON character
      (;).</li><!-- we should say it should be the shortest
      possible string, no leading zeros. this whole step is asinine,
@@ -58264,12 +58149,9 @@
 
        <dd>
 
-        <ol><li><p>Let <var title="">s</var> be a string consisting of a
-         U+0025 PERCENT SIGN character (%) followed by two characters
-         in the ranges U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)
-         and U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL
-         LETTER F representing the hexadecimal value of the byte in
-         question (zero-padded if necessary).</li>
+        <ol><li><p>Let <var title="">s</var> be a string consisting of a U+0025 PERCENT SIGN character
+         (%) followed by <a href=#uppercase-ascii-hex-digits>uppercase ASCII hex digits</a> representing the hexadecimal value
+         of the byte in question (zero-padded if necessary).</li>
 
          <li><p>Encode the string <var title="">s</var> as US-ASCII,
          so that it is now a byte string.</p>
@@ -58369,10 +58251,7 @@
       escape. This replacement most not be recursive.</p>
 
       <p>An escape is a U+0025 PERCENT SIGN character (%) followed by
-      two characters in the ranges U+0030 DIGIT ZERO (0) to U+0039
-      DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN
-      CAPITAL LETTER F, and U+0061 LATIN SMALL LETTER A to U+0066
-      LATIN SMALL LETTER F.</p>
+      two <a href=#ascii-hex-digits>ASCII hex digits</a>.</p>
 
       <p>The character represented by an escape is the Unicode
       character whose code point is equal to the value of the two
@@ -58466,8 +58345,7 @@
      cannot be expressed using the selected character encoding,
      replace the character by a string consisting of a U+0026
      AMPERSAND character (&), a U+0023 NUMBER SIGN character (#),
-     one or more characters in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9) representing the Unicode code point of the
+     one or more <a href=#ascii-digits>ASCII digits</a> representing the Unicode code point of the
      character in base ten, and finally a U+003B SEMICOLON character
      (;).</li><!-- we should say it should be the shortest
      possible string, no leading zeros. this whole step is asinine,
@@ -61606,8 +61484,7 @@
    the "<code title="">x</code>" or "<code title="">X</code>".</li>
 
    <li><p>If either <var title="">width string</var> or <var title="">height string</var> start with a U+0030 DIGIT ZERO (0)
-   character or contain any characters other than characters in the
-   range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then this
+   character or contain any characters other than <a href=#ascii-digits>ASCII digits</a>, then this
    keyword doesn't represent anything. Abort these steps for that
    keyword.</li>
 
@@ -65160,24 +65037,20 @@
     <ol><li>Optionally, either a U+002B PLUS SIGN character (+) or a
      U+002D HYPHEN-MINUS character (-).</li>
 
-     <li>One or more digits in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9).</li>
+     <li>One or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9).</li>
+     or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>A U+003B SEMICOLON character (;).</li>
 
      <li>Optionally, either a U+002B PLUS SIGN character (+) or a
      U+002D HYPHEN-MINUS character (-).</li>
 
-     <li>One or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
-     DIGIT NINE (9).</li>
+     <li>One or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9).</li>
+     or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
     </ol><p>The optional components marked with an asterisk (*) should be
     included, and should have six digits each.</p>
@@ -66270,24 +66143,20 @@
     <ol><li>Optionally, either a U+002B PLUS SIGN character (+) or a
      U+002D HYPHEN-MINUS character (-).</li>
 
-     <li>One or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
-     DIGIT NINE (9).</li>
+     <li>One or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9).</li>
+     or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>A U+003B SEMICOLON character (;).</li>
 
      <li>Optionally, either a U+002B PLUS SIGN character (+) or a
      U+002D HYPHEN-MINUS character (-).</li>
 
-     <li>One or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
-     DIGIT NINE (9).</li>
+     <li>One or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
      <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9).</li>
+     or more <a href=#ascii-digits>ASCII digits</a>.</li>
 
     </ol><p>The optional components marked with an asterisk (*) should be
     included, and should have six digits each.</p> <!-- iCalendar
@@ -76036,9 +75905,7 @@
 
     <ul class=brief><li>U+002B PLUS SIGN (+)
      <li>U+002F SOLIDUS (/)
-     <li>U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)
-     <li>U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z
-     <li>U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER Z
+     <li><a href=#alphanumeric-ascii-characters>Alphanumeric ASCII characters</a>
     </ul></li>
 
    <li><p>Let <var title="">output</var> be a string, initially
@@ -77229,12 +77096,10 @@
     schemes don't contain colons.</p>
 
     <p>If the <code title=dom-navigator-registerProtocolHandler><a href=#dom-navigator-registerprotocolhandler>registerProtocolHandler()</a></code>
-    method is invoked with a scheme that is neither a
-    <a href=#whitelisted-scheme>whitelisted scheme</a> nor a scheme whose value starts
-    with the substring "<code title="">web+</code>" and otherwise
-    contains only characters in the range U+0061 LATIN SMALL LETTER A
-    to U+007A LATIN SMALL LETTER Z, the user agent must throw a
-    <code><a href=#securityerror>SecurityError</a></code> exception.</p>
+    method is invoked with a scheme that is neither a <a href=#whitelisted-scheme>whitelisted scheme</a> nor a scheme
+    whose value starts with the substring "<code title="">web+</code>" and otherwise contains only
+    <span>lowercase ASCII characters</span>, the user agent must throw a <code><a href=#securityerror>SecurityError</a></code>
+    exception.</p>
 
     <p>The following schemes are the <dfn id=whitelisted-scheme title="whitelisted
     scheme">whitelisted schemes</dfn>:</p>
@@ -84582,8 +84447,7 @@
 
    <dt>If the field name is "retry"</dt>
 
-   <dd><p>If the field value consists of only characters in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then interpret the
+   <dd><p>If the field value consists of only <a href=#ascii-digits>ASCII digits</a>, then interpret the
    field value as an integer in base ten, and set the event stream's
    <a href=#concept-event-stream-reconnection-time title=concept-event-stream-reconnection-time>reconnection
    time</a> to that integer. Otherwise, ignore the field.</dd>
@@ -87609,12 +87473,10 @@
 
   </div>
 
-  <p>Many strings in the HTML syntax (e.g. the names of elements and
-  their attributes) are case-insensitive, but only for characters in
-  the ranges U+0041 to U+005A (LATIN CAPITAL LETTER A to LATIN CAPITAL
-  LETTER Z) and U+0061 to U+007A (LATIN SMALL LETTER A to LATIN SMALL
-  LETTER Z). For convenience, in this section this is just referred to
-  as "case-insensitive".</p>
+  <p>Many strings in the HTML syntax (e.g. the names of elements and their attributes) are
+  case-insensitive, but only for <a href=#uppercase-ascii-letters>uppercase ASCII letters</a> and <a href=#lowercase-ascii-letters>lowercase ASCII
+  letters</a>. For convenience, in this section this is just referred to as
+  "case-insensitive".</p>
 
 
   <h4 id=the-doctype><span class=secno>12.1.1 </span>The DOCTYPE</h4>
@@ -87812,15 +87674,11 @@
   the content model and those described in this paragraph. Those
   restrictions are described below.</p>
 
-  <p>Tags contain a <dfn id=syntax-tag-name title=syntax-tag-name>tag name</dfn>,
-  giving the element's name. HTML elements all have names that only
-  use characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-  NINE (9), U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
-  Z, and U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER
-  Z. In the HTML syntax, tag names, even those for <a href=#foreign-elements>foreign
-  elements</a>, may be written with any mix of lower- and uppercase
-  letters that, when converted to all-lowercase, matches the element's
-  tag name; tag names are case-insensitive.</p>
+  <p>Tags contain a <dfn id=syntax-tag-name title=syntax-tag-name>tag name</dfn>, giving the element's name. HTML
+  elements all have names that only use <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a>. In the HTML
+  syntax, tag names, even those for <a href=#foreign-elements>foreign elements</a>, may be written with any mix of
+  lower- and uppercase letters that, when converted to all-lowercase, matches the element's tag
+  name; tag names are case-insensitive.</p>
 
 
   <h5 id=start-tags><span class=secno>12.1.2.1 </span>Start tags</h5>
@@ -88335,27 +88193,20 @@
 
    <dt>Decimal numeric character reference</dt>
 
-   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN
-   character (#), followed by one or more digits in the range U+0030
-   DIGIT ZERO (0) to U+0039 DIGIT NINE (9), representing a base-ten
-   integer that corresponds to a Unicode code point that is allowed
-   according to the definition below. The digits must then be followed
-   by a U+003B SEMICOLON character (;).</dd>
+   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN character (#), followed by one or more
+   <a href=#ascii-digits>ASCII digits</a>, representing a base-ten integer that corresponds to a Unicode code
+   point that is allowed according to the definition below. The digits must then be followed by a
+   U+003B SEMICOLON character (;).</dd>
 
 
    <dt>Hexadecimal numeric character reference</dt>
 
-   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN
-   character (#), which must be followed by either a U+0078 LATIN
-   SMALL LETTER X character (x) or a U+0058 LATIN CAPITAL LETTER X
-   character (X), which must then be followed by one or more digits in
-   the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0061
-   LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F, and U+0041
-   LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F,
-   representing a base-sixteen integer that corresponds to a Unicode
-   code point that is allowed according to the definition below. The
-   digits must then be followed by a U+003B SEMICOLON character
-   (;).</dd>
+   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN character (#), which must be followed
+   by either a U+0078 LATIN SMALL LETTER X character (x) or a U+0058 LATIN CAPITAL LETTER X
+   character (X), which must then be followed by one or more <a href=#ascii-hex-digits>ASCII hex digits</a>,
+   representing a base-sixteen integer that corresponds to a Unicode code point that is allowed
+   according to the definition below. The digits must then be followed by a U+003B SEMICOLON
+   character (;).</dd>
 
   </dl><p>The numeric character reference forms described above are allowed
   to reference any Unicode code point other than U+0000, U+000D,
@@ -88363,14 +88214,10 @@
   control characters other than <a href=#space-character title="space character">space
   characters</a>.</p>
 
-  <p>An <dfn id=syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous
-  ampersand</dfn> is a U+0026 AMPERSAND character (&) that is
-  followed by one or more characters in the range U+0030 DIGIT ZERO
-  (0) to U+0039 DIGIT NINE (9), U+0061 LATIN SMALL LETTER A to U+007A
-  LATIN SMALL LETTER Z, and U+0041 LATIN CAPITAL LETTER A to U+005A
-  LATIN CAPITAL LETTER Z, followed by a U+003B SEMICOLON character
-  (;), where these characters do not match any of the names given in
-  the <a href=#named-character-references>named character references</a> section.</p>
+  <p>An <dfn id=syntax-ambiguous-ampersand title=syntax-ambiguous-ampersand>ambiguous ampersand</dfn> is a U+0026 AMPERSAND
+  character (&) that is followed by one or more <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a>,
+  followed by a U+003B SEMICOLON character (;), where these characters do not match any of the names
+  given in the <a href=#named-character-references>named character references</a> section.</p>
 
 
   <h4 id=cdata-sections><span class=secno>12.1.5 </span>CDATA sections</h4>
@@ -90063,14 +89910,14 @@
    <dt>U+002F SOLIDUS (/)</dt>
    <dd>Switch to the <a href=#end-tag-open-state>end tag open state</a>.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new start tag token, set its tag name to the
    lowercase version of the <a href=#current-input-character>current input character</a> (add 0x0020 to the
    character's code point), then switch to the <a href=#tag-name-state>tag name
    state</a>. (Don't emit the token yet; further details will
    be filled in before it is emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Create a new start tag token, set its tag name to the
    <a href=#current-input-character>current input character</a>, then switch to the <a href=#tag-name-state>tag
    name state</a>. (Don't emit the token yet; further details will
@@ -90089,14 +89936,14 @@
 
   <p>Consume the <a href=#next-input-character>next input character</a>:</p>
 
-  <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+  <dl class=switch><dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new end tag token, set its tag name to the lowercase
    version of the <a href=#current-input-character>current input character</a> (add 0x0020 to
    the character's code point), then switch to the <a href=#tag-name-state>tag name
    state</a>. (Don't emit the token yet; further details will be
    filled in before it is emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Create a new end tag token, set its tag name to the
    <a href=#current-input-character>current input character</a>, then switch to the <a href=#tag-name-state>tag
    name state</a>. (Don't emit the token yet; further details will
@@ -90133,7 +89980,7 @@
    <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current tag token's tag name.</dd>
@@ -90169,7 +90016,7 @@
 
   <p>Consume the <a href=#next-input-character>next input character</a>:</p>
 
-  <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+  <dl class=switch><dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    lowercase version of the <a href=#current-input-character>current input character</a> (add
    0x0020 to the character's code point). Append the <a href=#current-input-character>current
@@ -90178,7 +90025,7 @@
    the token yet; further details will be filled in before it is
    emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    <a href=#current-input-character>current input character</a>. Append the <a href=#current-input-character>current
    input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
@@ -90218,13 +90065,13 @@
    the current tag token. Otherwise, treat it as per the "anything
    else" entry below.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Append the <a href=#current-input-character>current input character</a> to the current
    tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
@@ -90255,7 +90102,7 @@
 
   <p>Consume the <a href=#next-input-character>next input character</a>:</p>
 
-  <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+  <dl class=switch><dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    lowercase version of the <a href=#current-input-character>current input character</a> (add
    0x0020 to the character's code point). Append the <a href=#current-input-character>current
@@ -90264,7 +90111,7 @@
    the token yet; further details will be filled in before it is
    emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    <a href=#current-input-character>current input character</a>. Append the <a href=#current-input-character>current
    input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
@@ -90304,13 +90151,13 @@
    the current tag token. Otherwise, treat it as per the "anything
    else" entry below.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Append the <a href=#current-input-character>current input character</a> to the current
    tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
@@ -90345,7 +90192,7 @@
 
   <p>Consume the <a href=#next-input-character>next input character</a>:</p>
 
-  <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+  <dl class=switch><dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    lowercase version of the <a href=#current-input-character>current input character</a> (add
    0x0020 to the character's code point). Append the <a href=#current-input-character>current
@@ -90354,7 +90201,7 @@
    the token yet; further details will be filled in before it is
    emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    <a href=#current-input-character>current input character</a>. Append the <a href=#current-input-character>current
    input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
@@ -90394,13 +90241,13 @@
    the current tag token. Otherwise, treat it as per the "anything
    else" entry below.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Append the <a href=#current-input-character>current input character</a> to the current
    tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
@@ -90521,7 +90368,7 @@
    <dd>Set the <var><a href=#temporary-buffer>temporary buffer</a></var> to the empty string. Switch
    to the <a href=#script-data-escaped-end-tag-open-state>script data escaped end tag open state</a>.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Set the <var><a href=#temporary-buffer>temporary buffer</a></var> to the empty string. Append
    the lowercase version of the <a href=#current-input-character>current input character</a>
    (add 0x0020 to the character's code point) to the <var><a href=#temporary-buffer>temporary
@@ -90529,7 +90376,7 @@
    state</a>. Emit a U+003C LESS-THAN SIGN character token and the
    <a href=#current-input-character>current input character</a> as a character token.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Set the <var><a href=#temporary-buffer>temporary buffer</a></var> to the empty string. Append
    the <a href=#current-input-character>current input character</a> to the <var><a href=#temporary-buffer>temporary
    buffer</a></var>. Switch to the <a href=#script-data-double-escape-start-state>script data double escape start
@@ -90545,7 +90392,7 @@
 
   <p>Consume the <a href=#next-input-character>next input character</a>:</p>
 
-  <dl class=switch><dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+  <dl class=switch><dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    lowercase version of the <a href=#current-input-character>current input character</a> (add
    0x0020 to the character's code point). Append the <a href=#current-input-character>current
@@ -90554,7 +90401,7 @@
    state</a>. (Don't emit the token yet; further details will be
    filled in before it is emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Create a new end tag token, and set its tag name to the
    <a href=#current-input-character>current input character</a>. Append the <a href=#current-input-character>current
    input character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>. Finally,
@@ -90594,13 +90441,13 @@
    the current tag token. Otherwise, treat it as per the "anything
    else" entry below.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Append the <a href=#current-input-character>current input character</a> to the current
    tag token's tag name. Append the <a href=#current-input-character>current input
    character</a> to the <var><a href=#temporary-buffer>temporary buffer</a></var>.</dd>
@@ -90628,13 +90475,13 @@
    data escaped state</a>. Emit the <a href=#current-input-character>current input
    character</a> as a character token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    <var><a href=#temporary-buffer>temporary buffer</a></var>. Emit the <a href=#current-input-character>current input
    character</a> as a character token.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Append the <a href=#current-input-character>current input character</a> to the
    <var><a href=#temporary-buffer>temporary buffer</a></var>. Emit the <a href=#current-input-character>current input
    character</a> as a character token.</dd>
@@ -90754,13 +90601,13 @@
    double escaped state</a>. Emit the <a href=#current-input-character>current input
    character</a> as a character token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    <var><a href=#temporary-buffer>temporary buffer</a></var>. Emit the <a href=#current-input-character>current input
    character</a> as a character token.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><a href=#lowercase-ascii-letters title="lowercase ASCII letters">Lowercase ASCII letter</a></dt>
    <dd>Append the <a href=#current-input-character>current input character</a> to the
    <var><a href=#temporary-buffer>temporary buffer</a></var>. Emit the <a href=#current-input-character>current input
    character</a> as a character token.</dd>
@@ -90787,7 +90634,7 @@
    <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Start a new attribute in the current tag token. Set that
    attribute's name to the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point), and its
@@ -90838,7 +90685,7 @@
    <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current attribute's name.</dd>
@@ -90891,7 +90738,7 @@
    <dd>Switch to the <a href=#data-state>data state</a>. Emit the current tag
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Start a new attribute in the current tag token. Set that
    attribute's name to the lowercase version of the <a href=#current-input-character>current
    input character</a> (add 0x0020 to the character's code point),
@@ -91350,7 +91197,7 @@
    <dt>U+0020 SPACE</dt>
    <dd>Ignore the character.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Create a new DOCTYPE token. Set the token's name to the
    lowercase version of the <a href=#current-input-character>current input character</a> (add 0x0020 to the
    character's code point). Switch to the <a href=#doctype-name-state>DOCTYPE name
@@ -91392,7 +91239,7 @@
    <dd>Switch to the <a href=#data-state>data state</a>. Emit the current DOCTYPE
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><a href=#uppercase-ascii-letters title="uppercase ASCII letters">Uppercase ASCII letter</a></dt>
    <dd>Append the lowercase version of the <a href=#current-input-character>current input
    character</a> (add 0x0020 to the character's code point) to the
    current DOCTYPE token's name.</dd>
@@ -91869,14 +91716,9 @@
 
       <p>Consume the X.</p>
 
-      <p>Follow the steps below, but using the range of characters
-      U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0061 LATIN
-      SMALL LETTER A to U+0066 LATIN SMALL LETTER F, and U+0041 LATIN
-      CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F (in other
-      words, 0-9, A-F, a-f).</p>
+      <p>Follow the steps below, but using <a href=#ascii-hex-digits>ASCII hex digits</a>.</p>
 
-      <p>When it comes to interpreting the number, interpret it as a
-      hexadecimal number.</p>
+      <p>When it comes to interpreting the number, interpret it as a hexadecimal number.</p>
 
      </dd>
 
@@ -91885,16 +91727,15 @@
 
      <dd>
 
-      <p>Follow the steps below, but using the range of characters
-      U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9).</p>
+      <p>Follow the steps below, but using <a href=#ascii-digits>ASCII digits</a>.</p>
 
       <p>When it comes to interpreting the number, interpret it as a
       decimal number.</p>
 
      </dd>
 
-    </dl><p>Consume as many characters as match the range of characters
-    given above.</p>
+    </dl><p>Consume as many characters as match the range of characters given above (<a href=#ascii-hex-digits>ASCII hex
+    digits</a> or <a href=#ascii-digits>ASCII digits</a>).</p>
 
     <p>If no characters match the range, then don't consume any
     characters (and unconsume the U+0023 NUMBER SIGN character and, if
@@ -91984,25 +91825,18 @@
     column of the <a href=#named-character-references>named character references</a> table (in a
     <a href=#case-sensitive>case-sensitive</a> manner).</p>
 
-    <p>If no match can be made, then no characters are consumed, and
-    nothing is returned. In this case, if the characters after the
-    U+0026 AMPERSAND character (&) consist of a sequence of one or
-    more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-    NINE (9), U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
-    Z, and U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL
-    LETTER Z, followed by a U+003B SEMICOLON character (;), then this
-    is a <a href=#parse-error>parse error</a>.</p>
+    <p>If no match can be made, then no characters are consumed, and nothing is returned. In this
+    case, if the characters after the U+0026 AMPERSAND character (&) consist of a sequence of
+    one or more <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a> followed by a U+003B SEMICOLON character
+    (;), then this is a <a href=#parse-error>parse error</a>.</p>
 
-    <p>If the character reference is being consumed <a href=#character-reference-in-attribute-value-state title="character reference in attribute value state">as part of an
-    attribute</a>, and the last character matched is not a U+003B
-    SEMICOLON character (;), and the next character is either a U+003D
-    EQUALS SIGN character (=) or in the range U+0030 DIGIT ZERO (0) to
-    U+0039 DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+005A
-    LATIN CAPITAL LETTER Z, or U+0061 LATIN SMALL LETTER A to U+007A
-    LATIN SMALL LETTER Z, then, for historical reasons, all the
-    characters that were matched after the U+0026 AMPERSAND character
-    (&) must be unconsumed, and nothing is returned.</p>
-    <!-- "=" added because of http://www.w3.org/Bugs/Public/show_bug.cgi?id=9207#c5 -->
+    <p>If the character reference is being consumed <a href=#character-reference-in-attribute-value-state title="character reference in attribute
+    value state">as part of an attribute</a>, and the last character matched is not a U+003B
+    SEMICOLON character (;), and the next character is either a U+003D EQUALS SIGN character (=) or
+    an <a href=#alphanumeric-ascii-characters title="alphanumeric ASCII characters">alphanumeric ASCII character</a>, then, for
+    historical reasons, all the characters that were matched after the U+0026 AMPERSAND character
+    (&) must be unconsumed, and nothing is returned.</p> <!-- "=" added because of
+    http://www.w3.org/Bugs/Public/show_bug.cgi?id=9207#c5 -->
 
     <p>Otherwise, a character reference is parsed. If the last
     character matched is not a U+003B SEMICOLON character (;), there
@@ -97614,8 +97448,7 @@
    character. Otherwise, let <var title="">mode</var> be
    <i>absolute</i>.</li>
 
-   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and let the
+   <li><p><a href=#collect-a-sequence-of-characters>Collect a sequence of characters</a> that are <a href=#ascii-digits>ASCII digits</a>, and let the
    resulting sequence be <var title="">digits</var>.</li>
 
    <li><p>If <var title="">digits</var> is the empty string, there is

Modified: source
===================================================================
--- source	2012-10-30 00:03:15 UTC (rev 7489)
+++ source	2012-10-30 22:15:48 UTC (rev 7490)
@@ -3858,13 +3858,31 @@
   value (abbreviated "WS") of the "Bidi_Class" property in the <code
   title="">Unicode.txt</code> data file.</p>
 
-  <div class="impl">
+  <p>The <dfn>uppercase ASCII letters</dfn> are the characters in the range U+0041 LATIN CAPITAL
+  LETTER A to U+005A LATIN CAPITAL LETTER Z.</p>
 
-  <p>The <dfn>alphanumeric ASCII characters</dfn> are those in the
-  ranges U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0041 LATIN
-  CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z, U+0061 LATIN
-  SMALL LETTER A to U+007A LATIN SMALL LETTER Z.</p>
+  <p>The <dfn>lowercase ASCII letters</dfn> are the characters in the range U+0061 LATIN SMALL
+  LETTER A to U+007A LATIN SMALL LETTER Z.</p>
 
+  <p>The <dfn>ASCII digits</dfn> are the characters in the range U+0030 DIGIT ZERO (0) to U+0039
+  DIGIT NINE (9).</p>
+
+  <p>The <dfn>alphanumeric ASCII characters</dfn> are those that are either <span>uppercase ASCII
+  letters</span>, <span>lowercase ASCII letters</span>, or <span>ASCII digits</span>.</p>
+
+  <p>The <dfn>ASCII hex digits</dfn> are the characters in the ranges U+0030 DIGIT ZERO (0) to
+  U+0039 DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F, and U+0061
+  LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F.</p>
+
+  <p>The <dfn>uppercase ASCII hex digits</dfn> are the characters in the ranges U+0030 DIGIT ZERO (0) to
+  U+0039 DIGIT NINE (9) and U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F only.</p>
+
+  <p>The <dfn>lowercase ASCII hex digits</dfn> are the characters in the ranges U+0030 DIGIT ZERO
+  (0) to U+0039 DIGIT NINE (9) and U+0061 LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F
+  only.</p>
+
+  <div class="impl">
+
   <p>Some of the micro-parsers described below follow the pattern of
   having an <var title="">input</var> variable that holds the string
   being parsed, and having a <var title="">position</var> variable
@@ -4038,10 +4056,8 @@
 
   <h5>Signed integers</h5>
 
-  <p>A string is a <dfn>valid integer</dfn> if it consists of one or
-  more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-  NINE (9), optionally prefixed with a U+002D HYPHEN-MINUS character
-  (-).</p>
+  <p>A string is a <dfn>valid integer</dfn> if it consists of one or more <span>ASCII digits</span>,
+  optionally prefixed with a U+002D HYPHEN-MINUS character (-).</p>
 
   <p>A <span>valid integer</span> without a U+002D HYPHEN-MINUS (-)
   prefix represents the number that is represented in base ten by that
@@ -4108,18 +4124,16 @@
 
    </li>
 
-   <li><p>If the character indicated by <var title="">position</var>
-   is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
-   return an error.</p></li>
+   <li><p>If the character indicated by <var title="">position</var> is not an <span title="ASCII
+   digits">ASCII digit</span>, then return an error.</p></li>
 
    <!-- Ok. At this point we know we have a number. It might have
    trailing garbage which we'll ignore, but it's a number, and we
    won't return an error. -->
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
-   resulting sequence as a base-ten integer. Let <var
-   title="">value</var> be that integer.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>, and
+   interpret the resulting sequence as a base-ten integer. Let <var title="">value</var> be that
+   integer.</p></li>
 
    <li><p>If <var title="">sign</var> is "positive", return <var
    title="">value</var>, otherwise return the result of subtracting
@@ -4133,8 +4147,7 @@
   <h5>Non-negative integers</h5>
 
   <p>A string is a <dfn>valid non-negative integer</dfn> if it
-  consists of one or more characters in the range U+0030 DIGIT ZERO
-  (0) to U+0039 DIGIT NINE (9).</p>
+  consists of one or more <span>ASCII digits</span>.</p>
 
   <p>A <span>valid non-negative integer</span> represents the number
   that is represented in base ten by that string of digits.</p>
@@ -4184,8 +4197,7 @@
 
     <ol>
 
-     <li>A series of one or more characters in the range U+0030 DIGIT
-     ZERO (0) to U+0039 DIGIT NINE (9).</li>
+     <li>A series of one or more <span>ASCII digits</span>.</li>
 
      <li>
 
@@ -4193,8 +4205,7 @@
 
        <li>A single U+002E FULL STOP character (.).</li>
 
-       <li>A series of one or more characters in the range U+0030 DIGIT
-       ZERO (0) to U+0039 DIGIT NINE (9).</li>
+       <li>A series of one or more <span>ASCII digits</span>.</li>
 
       </ol>
 
@@ -4214,8 +4225,7 @@
      <li>Optionally, a U+002D HYPHEN-MINUS character (-) or U+002B
      PLUS SIGN character (+).</li>
 
-     <li>A series of one or more characters in the range U+0030 DIGIT
-     ZERO (0) to U+0039 DIGIT NINE (9).</li>
+     <li>A series of one or more <span>ASCII digits</span>.</li>
 
     </ol>
 
@@ -4314,23 +4324,19 @@
 
    </li>
 
-   <li><p>If the character indicated by <var title="">position</var>
-   is a U+002E FULL STOP (.), and that is not the last character in
-   <var title="">input</var>, and the character after the character
-   indicated by <var title="">position</var> is one of U+0030 DIGIT
-   ZERO (0) to U+0039 DIGIT NINE (9), then set <var
-   title="">value</var> to zero and jump to the step labeled
-   <i>fraction</i>.</p> <!-- we have to check there's a number so that
-   ".e1" fails to parse but ".0" does not -->
+   <li><p>If the character indicated by <var title="">position</var> is a U+002E FULL STOP (.), and
+   that is not the last character in <var title="">input</var>, and the character after the
+   character indicated by <var title="">position</var> is an <span title="ASCII digits">ASCII
+   digit</span>, then set <var title="">value</var> to zero and jump to the step labeled
+   <i>fraction</i>.</p> <!-- we have to check there's a number so that ".e1" fails to parse but ".0"
+   does not -->
 
-   <li><p>If the character indicated by <var title="">position</var>
-   is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
-   return an error.</p></li>
+   <li><p>If the character indicated by <var title="">position</var> is not an <span title="ASCII
+   digits">ASCII digit</span>, then return an error.</p></li>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
-   resulting sequence as a base-ten integer. Multiply <var
-   title="">value</var> by that integer.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>, and
+   interpret the resulting sequence as a base-ten integer. Multiply <var title="">value</var> by
+   that integer.</p></li>
 
    <li>If <var title="">position</var> is past the end of <var
    title="">input</var>, jump to the step labeled
@@ -4345,12 +4351,10 @@
      <li><p>Advance <var title="">position</var> to the next
      character.</p></li>
 
-     <li><p>If <var title="">position</var> is past the end of <var
-     title="">input</var>, or if the character indicated by <var
-     title="">position</var> is not one of U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9), U+0065 LATIN SMALL LETTER E (e), or U+0045
-     LATIN CAPITAL LETTER E (E), then jump to the step labeled
-     <i>conversion</i>.</li>
+     <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, or if the
+     character indicated by <var title="">position</var> is not an <span title="ASCII digits">ASCII
+     digit</span>, U+0065 LATIN SMALL LETTER E (e), or U+0045 LATIN CAPITAL LETTER E (E), then jump
+     to the step labeled <i>conversion</i>.</li>
 
      <li><p>If the character indicated by <var title="">position</var>
      is a U+0065 LATIN SMALL LETTER E character (e) or a U+0045 LATIN
@@ -4372,9 +4376,8 @@
      title="">input</var>, then jump to the step labeled
      <i>conversion</i>.</li>
 
-     <li><p>If the character indicated by <var title="">position</var>
-     is one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), jump
-     back to the step labeled <i>fraction loop</i> in these
+     <li><p>If the character indicated by <var title="">position</var> is an <span title="ASCII
+     digits">ASCII digit</span>, jump back to the step labeled <i>fraction loop</i> in these
      substeps.</p></li>
 
     </ol>
@@ -4428,14 +4431,12 @@
 
      </li>
 
-     <li><p>If the character indicated by <var title="">position</var>
-     is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
-     then jump to the step labeled <i>conversion</i>.</li>
+     <li><p>If the character indicated by <var title="">position</var> is not an <span title="ASCII
+     digits">ASCII digit</span>, then jump to the step labeled <i>conversion</i>.</li>
 
-     <li><p><span>Collect a sequence of characters</span> in the range
-     U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
-     resulting sequence as a base-ten integer. Multiply <var
-     title="">exponent</var> by that integer.</p></li>
+     <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>, and
+     interpret the resulting sequence as a base-ten integer. Multiply <var title="">exponent</var>
+     by that integer.</p></li>
 
      <li><p>Multiply <var title="">value</var> by ten raised to the
      <var title="">exponent</var>th power.</p></li>
@@ -4470,13 +4471,10 @@
 <div class="impl">
   <h5 id="percentages-and-dimensions">Percentages and lengths</h5>
 <!--(percentages are not used in valid html anymore)
-  <p>A string is a <dfn>valid dimension value</dfn> if it consists of
-  a character in the range U+0031 DIGIT ONE (1) to U+0039 DIGIT NINE
-  (9), optionally followed by zero of more characters in the range
-  U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), optionally followed
-  by a U+002E FULL STOP character (.) and one or more characters in
-  the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and
-  optionally suffixed by a U+0025 PERCENT SIGN character (%).</p>
+  <p>A string is a <dfn>valid dimension value</dfn> if it consists of a character in the range
+  U+0031 DIGIT ONE (1) to U+0039 DIGIT NINE (9), optionally followed by zero of more <span>ASCII
+  digits</span>, optionally followed by a U+002E FULL STOP character (.) and one or more <span>ASCII
+  digits</span>, and optionally suffixed by a U+0025 PERCENT SIGN character (%).</p>
 
   <p>A <span>valid dimension value</span> represents the number that
   is represented in base ten by that string of digits, optionally with
@@ -4526,10 +4524,9 @@
    trailing garbage which we'll ignore, but it's a number, and we
    won't return an error. -->
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and interpret the
-   resulting sequence as a base-ten integer. Let <var
-   title="">value</var> be that number.</li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>, and
+   interpret the resulting sequence as a base-ten integer. Let <var title="">value</var> be that
+   number.</li>
 
    <li><p>If <var title="">position</var> is past the end of <var
    title="">input</var>, return <var title="">value</var> as a
@@ -4545,11 +4542,9 @@
      <li><p>Advance <var title="">position</var> to the next
      character.</p></li>
 
-     <li><p>If <var title="">position</var> is past the end of <var
-     title="">input</var>, or if the character indicated by <var
-     title="">position</var> is not one of U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9), then return <var title="">value</var> as a
-     length.</li>
+     <li><p>If <var title="">position</var> is past the end of <var title="">input</var>, or if the
+     character indicated by <var title="">position</var> is not an <span title="ASCII digits">ASCII
+     digit</span>, then return <var title="">value</var> as a length.</li>
 
      <li><p>Let <var title="">divisor</var> have the value 1.</p></li>
 
@@ -4569,7 +4564,7 @@
      length.</li>
 
      <li><p>If the character indicated by <var title="">position</var>
-     is one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), return
+     is an <span title="ASCII digits">ASCII digit</span>, return
      to the step labeled <i>fraction loop</i> in these
      substeps.</p></li>
 
@@ -4683,10 +4678,8 @@
 
      </dd>
 
+     <dt>An <span title="ASCII digits">ASCII digit</span></dt>
 
-     <dt>A character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9)</dt>
-
      <dd>
 
       <p>Follow these substeps:</p>
@@ -4954,11 +4947,9 @@
      title="">input</var>, set <var title="">unit</var> to
      <i>relative</i> and jump to the last substep.</p></li>
 
-     <li><p>If the character at <var title="">position</var> is a
-     character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE
-     (9), <span>collect a sequence of characters</span> in the range
-     U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), interpret the
-     resulting sequence as an integer in base ten, and increment <var
+     <li><p>If the character at <var title="">position</var> is an <span title="ASCII digits">ASCII
+     digit</span>, <span>collect a sequence of characters</span> that are <span>ASCII digits</span>,
+     interpret the resulting sequence as an integer in base ten, and increment <var
      title="">value</var> by that integer.</p></li>
 
      <li>
@@ -4968,11 +4959,9 @@
 
       <ol>
 
-       <li><p><span>Collect a sequence of characters</span> consisting
-       of <span title="space character">space characters</span> and
-       characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-       NINE (9). Let <var title="">s</var> be the resulting
-       sequence.</p></li>
+       <li><p><span>Collect a sequence of characters</span> consisting of <span title="space
+       character">space characters</span> and <span>ASCII digits</span>. Let <var title="">s</var>
+       be the resulting sequence.</p></li>
 
        <li><p>Remove all <span title="space character">space
        characters</span> in <var title="">s</var>.</p></li>
@@ -5048,10 +5037,8 @@
   Gregorian calendar. <a
   href="#refsGREGORIAN">[GREGORIAN]</a></p>
 
-  <p>The <dfn title="concept-datetime-digit">digits</dfn> in the date
-  and time syntaxes defined in this section must be characters in the
-  range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), used to
-  express numbers in base ten.</p>
+  <p>When <span>ASCII digits</span> are used in the date and time syntaxes defined in this section,
+  they express numbers in base ten.</p>
 
   <div class="impl">
 
@@ -5079,17 +5066,13 @@
 
   <ol>
 
-   <li>Four or more <span
-   title="concept-datetime-digit">digits</span>, representing <var
-   title="">year</var>, where <var
+   <li>Four or more <span>ASCII digits</span>, representing <var title="">year</var>, where <var
    title="">year</var> > 0</li>
 
    <li>A U+002D HYPHEN-MINUS character (-)</li>
 
-   <li>Two <span title="concept-datetime-digit">digits</span>,
-   representing the month <var title="">month</var>, in the range
-   1 ≤ <var
-   title="">month</var> ≤ 12</li>
+   <li>Two <span>ASCII digits</span>, representing the month <var title="">month</var>, in the range
+   1 ≤ <var title="">month</var> ≤ 12</li>
 
   </ol>
 
@@ -5129,11 +5112,10 @@
 
   <ol>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not at least four characters long, then
-   fail. Otherwise, interpret the resulting sequence as a base-ten
-   integer. Let that number be the <var title="">year</var>.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>. If the
+   collected sequence is not at least four characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var
+   title="">year</var>.</p></li>
 
    <li><p>If <var title="">year</var> is not a number greater than
    zero, then fail.</p></li>
@@ -5144,11 +5126,10 @@
    then fail. Otherwise, move <var title="">position</var> forwards
    one character.</p></li>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">month</var>.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var
+   title="">month</var>.</p></li>
 
    <li><p>If <var title="">month</var> is not a number in the range
    1 ≤ <var title="">month</var> ≤ 12, then
@@ -5181,13 +5162,10 @@
 
    <li>A U+002D HYPHEN-MINUS character (-)</li>
 
-   <li>Two <span title="concept-datetime-digit">digits</span>,
-   representing <var title="">day</var>, in the range
-   1 ≤ <var title="">day</var> ≤ <var
-   title="">maxday</var> where <var title="">maxday</var> is the <span
-   title="number of days in month month of year year">number of days
-   in the month <var title="">month</var> and year <var
-   title="">year</var></span></li>
+   <li>Two <span>ASCII digits</span>, representing <var title="">day</var>, in the range
+   1 ≤ <var title="">day</var> ≤ <var title="">maxday</var> where <var
+   title="">maxday</var> is the <span title="number of days in month month of year year">number of
+   days in the month <var title="">month</var> and year <var title="">year</var></span></li>
 
   </ol>
 
@@ -5244,11 +5222,10 @@
    then fail. Otherwise, move <var title="">position</var> forwards
    one character.</p></li>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">day</var>.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var
+   title="">day</var>.</p></li>
 
    <li><p>If <var title="">day</var> is not a number in the range
    1 ≤ <var title="">day</var> ≤ <var
@@ -5276,20 +5253,16 @@
 
    <li>Optionally, two U+002D HYPHEN-MINUS characters (-)</li>
 
-   <li>Two <span title="concept-datetime-digit">digits</span>,
-   representing the month <var title="">month</var>, in the range
-   1 ≤ <var
-   title="">month</var> ≤ 12</li>
+   <li>Two <span>ASCII digits</span>, representing the month <var title="">month</var>, in the range
+   1 ≤ <var title="">month</var> ≤ 12</li>
 
    <li>A U+002D HYPHEN-MINUS character (-)</li>
 
-   <li>Two <span title="concept-datetime-digit">digits</span>,
-   representing <var title="">day</var>, in the range
-   1 ≤ <var title="">day</var> ≤ <var
-   title="">maxday</var> where <var title="">maxday</var> is the <span
-   title="number of days in month month of year year">number of
-   days</span> in the month <var title="">month</var> and any
-   arbitrary leap year (e.g. 4 or 2000)</li>
+   <li>Two <span>ASCII digits</span>, representing <var title="">day</var>, in the range
+   1 ≤ <var title="">day</var> ≤ <var title="">maxday</var> where <var
+   title="">maxday</var> is the <span title="number of days in month month of year year">number of
+   days</span> in the month <var title="">month</var> and any arbitrary leap year (e.g. 4 or
+   2000)</li>
 
   </ol>
 
@@ -5337,11 +5310,10 @@
    U+002D HYPHEN-MINUS characters (-). If the collected sequence is
    not exactly zero or two characters long, then fail.</p></li>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">month</var>.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var
+   title="">month</var>.</p></li>
 
    <li><p>If <var title="">month</var> is not a number in the range
    1 ≤ <var title="">month</var> ≤ 12, then
@@ -5358,11 +5330,10 @@
    then fail. Otherwise, move <var title="">position</var> forwards
    one character.</p></li>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">day</var>.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var
+   title="">day</var>.</p></li>
 
    <li><p>If <var title="">day</var> is not a number in the range
    1 ≤ <var title="">day</var> ≤ <var
@@ -5389,14 +5360,12 @@
 
   <ol>
 
-   <li>Two <span title="concept-datetime-digit">digits</span>,
-   representing <var title="">hour</var>, in the range
+   <li>Two <span>ASCII digits</span>, representing <var title="">hour</var>, in the range
    0 ≤ <var title="">hour</var> ≤ 23</li>
 
    <li>A U+003A COLON character (:)</li>
 
-   <li>Two <span title="concept-datetime-digit">digits</span>,
-   representing <var title="">minute</var>, in the range
+   <li>Two <span>ASCII digits</span>, representing <var title="">minute</var>, in the range
    0 ≤ <var title="">minute</var> ≤ 59</li>
 
    <li>Optionally (required if <var title="">second</var> is
@@ -5406,10 +5375,8 @@
 
      <li>A U+003A COLON character (:)</li>
 
-     <li>Two <span title="concept-datetime-digit">digits</span>,
-     representing the integer part of <var title="">second</var>, in
-     the range 0 ≤ <var
-     title="">s</var> ≤ 59</li>
+     <li>Two <span>ASCII digits</span>, representing the integer part of <var title="">second</var>,
+     in the range 0 ≤ <var title="">s</var> ≤ 59</li>
 
      <li>Optionally (required if <var title="">second</var> is not an
      integer):
@@ -5418,9 +5385,8 @@
 
        <li>A 002E FULL STOP character (.)</li>
 
-       <li>One, two, or three <span
-       title="concept-datetime-digit">digits</span>, representing the
-       fractional part of <var title="">second</var></li>
+       <li>One, two, or three <span>ASCII digits</span>, representing the fractional part of <var
+       title="">second</var></li>
 
       </ol>
 
@@ -5474,11 +5440,10 @@
 
   <ol>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">hour</var>.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var
+   title="">hour</var>.</p></li>
 
    <li>If <var title="">hour</var> is not a number in the range
    0 ≤ <var title="">hour</var> ≤ 23, then
@@ -5490,11 +5455,10 @@
    fail. Otherwise, move <var title="">position</var> forwards one
    character.</p></li>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">minute</var>.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var
+   title="">minute</var>.</p></li>
 
    <li>If <var title="">minute</var> is not a number in the range
    0 ≤ <var title="">minute</var> ≤ 59, then
@@ -5515,22 +5479,16 @@
      <li><p>Advance <var title="">position</var> to the next character
      in <var title="">input</var>.</p></li>
 
-     <li><p>If <var title="">position</var> is beyond the end of <var
-     title="">input</var>, or at the last character in <var
-     title="">input</var>, or if the next <em>two</em> characters in
-     <var title="">input</var> starting at <var
-     title="">position</var> are not two characters both in the range
-     U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
-     fail.</p></li>
+     <li><p>If <var title="">position</var> is beyond the end of <var title="">input</var>, or at
+     the last character in <var title="">input</var>, or if the next <em>two</em> characters in <var
+     title="">input</var> starting at <var title="">position</var> are not both <span>ASCII
+     digits</span>, then fail.</p></li>
 
-     <li><p><span>Collect a sequence of characters</span> that are
-     either characters in the range U+0030 DIGIT ZERO (0) to U+0039
-     DIGIT NINE (9) or U+002E FULL STOP characters. If the collected
-     sequence is three characters long, or if it is longer than three
-     characters long and the third character is not a U+002E FULL STOP
-     character, or if it has more than one U+002E FULL STOP character,
-     then fail. Otherwise, let the collected string be <var
-     title="">second</var> instead of its previous value.</p></li>
+     <li><p><span>Collect a sequence of characters</span> that are either <span>ASCII digits</span>
+     or U+002E FULL STOP characters. If the collected sequence is three characters long, or if it is
+     longer than three characters long and the third character is not a U+002E FULL STOP character,
+     or if it has more than one U+002E FULL STOP character, then fail. Otherwise, let the collected
+     string be <var title="">second</var> instead of its previous value.</p></li>
 
     </ol>
 
@@ -5663,16 +5621,14 @@
      <!-- the -00:00 offset is disallowed because RFC3339 gives it a
      special semantic -->
 
-     <li>Two <span title="concept-datetime-digit">digits</span>,
-     representing the hours component <var title="">hour</var> of
+     <li>Two <span>ASCII digits</span>, representing the hours component <var title="">hour</var> of
      the time-zone offset, in the range 0 ≤ <var
      title="">hour</var> ≤ 23</li>
 
      <li>Optionally, a U+003A COLON character (:)</li>
 
-     <li>Two <span title="concept-datetime-digit">digits</span>,
-     representing the minutes component <var title="">minute</var>
-     of the time-zone offset, in the range 0 ≤ <var
+     <li>Two <span>ASCII digits</span>, representing the minutes component <var
+     title="">minute</var> of the time-zone offset, in the range 0 ≤ <var
      title="">minute</var> ≤ 59</li>
 
     </ol>
@@ -5766,9 +5722,8 @@
      <li><p>Advance <var title="">position</var> to the next character
      in <var title="">input</var>.</p></li>
 
-     <li><p><span>Collect a sequence of characters</span> in the range
-     U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). Let <var
-     title="">s</var> be the collected sequence.</p></li>
+     <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>. Let
+     <var title="">s</var> be the collected sequence.</p></li>
 
      <li>
 
@@ -5787,12 +5742,10 @@
        fail. Otherwise, move <var title="">position</var> forwards one
        character.</p></li>
 
-       <li><p><span>Collect a sequence of characters</span> in the range
-       U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-       sequence is not exactly two characters long, then
-       fail. Otherwise, interpret the resulting sequence as a base-ten
-       integer. Let that number be the <var title="">timezone<sub
-       title="">minutes</sub></var>.</p></li>
+       <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>. If
+       the collected sequence is not exactly two characters long, then fail. Otherwise, interpret
+       the resulting sequence as a base-ten integer. Let that number be the <var
+       title="">timezone<sub title="">minutes</sub></var>.</p></li>
 
       </ol>
 
@@ -6073,20 +6026,16 @@
 
   <ol>
 
-   <li>Four or more <span
-   title="concept-datetime-digit">digits</span>, representing <var
-   title="">year</var>, where <var
+   <li>Four or more <span>ASCII digits</span>, representing <var title="">year</var>, where <var
    title="">year</var> > 0</li>
 
    <li>A U+002D HYPHEN-MINUS character (-)</li>
 
    <li>A U+0057 LATIN CAPITAL LETTER W character (W)</li>
 
-   <li>Two <span title="concept-datetime-digit">digits</span>,
-   representing the week <var title="">week</var>, in the range
-   1 ≤ <var title="">week</var> ≤ <var
-   title="">maxweek</var>, where <var title="">maxweek</var> is the
-   <span>week number of the last day</span> of week-year <var
+   <li>Two <span>ASCII digits</span>, representing the week <var title="">week</var>, in the range
+   1 ≤ <var title="">week</var> ≤ <var title="">maxweek</var>, where <var
+   title="">maxweek</var> is the <span>week number of the last day</span> of week-year <var
    title="">year</var></li>
 
   </ol>
@@ -6107,11 +6056,10 @@
    title="">input</var>, initially pointing at the start of the
    string.</p></li>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not at least four characters long, then
-   fail. Otherwise, interpret the resulting sequence as a base-ten
-   integer. Let that number be the <var title="">year</var>.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>. If the
+   collected sequence is not at least four characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var
+   title="">year</var>.</p></li>
 
    <li><p>If <var title="">year</var> is not a number greater than
    zero, then fail.</p></li>
@@ -6128,11 +6076,10 @@
    character (W), then fail. Otherwise, move <var
    title="">position</var> forwards one character.</p></li>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). If the collected
-   sequence is not exactly two characters long, then fail. Otherwise,
-   interpret the resulting sequence as a base-ten integer. Let that
-   number be the <var title="">week</var>.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>. If the
+   collected sequence is not exactly two characters long, then fail. Otherwise, interpret the
+   resulting sequence as a base-ten integer. Let that number be the <var
+   title="">week</var>.</p></li>
 
    <li><p>Let <var title="">maxweek</var> be the <span>week number of
    the last day</span> of year <var title="">year</var>.</p></li>
@@ -6200,21 +6147,15 @@
 
     <ol>
 <!--MONTHS:
-     <li><p>One or more <span
-     title="concept-datetime-digit">digits</span> followed by a U+0059
-     LATIN CAPITAL LETTER Y character, representing a number of
-     years.</p></li>
+     <li><p>One or more <span>ASCII digits</span> followed by a U+0059 LATIN CAPITAL LETTER Y
+     character, representing a number of years.</p></li>
 
-     <li><p>One or more <span
-     title="concept-datetime-digit">digits</span> followed by a U+004D
-     LATIN CAPITAL LETTER M character, representing a number of
-     months.</p></li>
+     <li><p>One or more <span>ASCII digits</span> followed by a U+004D LATIN CAPITAL LETTER M
+     character, representing a number of months.</p></li>
 -->
 
-     <li><p>One or more <span
-     title="concept-datetime-digit">digits</span> followed by a U+0044
-     LATIN CAPITAL LETTER D character, representing a number of
-     days.</p></li>
+     <li><p>One or more <span>ASCII digits</span> followed by a U+0044 LATIN CAPITAL LETTER D
+     character, representing a number of days.</p></li>
 
      <li>
 
@@ -6223,15 +6164,11 @@
 
       <ol>
 
-       <li><p>One or more <span
-       title="concept-datetime-digit">digits</span> followed by a
-       U+0048 LATIN CAPITAL LETTER H character, representing a number
-       of hours.</p></li>
+       <li><p>One or more <span>ASCII digits</span> followed by a U+0048 LATIN CAPITAL LETTER H
+       character, representing a number of hours.</p></li>
 
-       <li><p>One or more <span
-       title="concept-datetime-digit">digits</span> followed by a
-       U+004D LATIN CAPITAL LETTER M character, representing a number
-       of minutes.</p></li>
+       <li><p>One or more <span>ASCII digits</span> followed by a U+004D LATIN CAPITAL LETTER M
+       character, representing a number of minutes.</p></li>
 
        <li>
 
@@ -6239,14 +6176,10 @@
 
         <ol>
 
-         <li><p>One or more <span
-         title="concept-datetime-digit">digits</span>, representing a
-         number of seconds.</p></li>
+         <li><p>One or more <span>ASCII digits</span>, representing a number of seconds.</p></li>
 
-         <li><p>Optionally, a U+002E FULL STOP character (.) followed
-         by one, two, or three <span
-         title="concept-datetime-digit">digits</span>, representing a
-         fraction of a second.</p></li>
+         <li><p>Optionally, a U+002E FULL STOP character (.) followed by one, two, or three
+         <span>ASCII digits</span>, representing a fraction of a second.</p></li>
 
          <li><p>A U+0053 LATIN CAPITAL LETTER S character.</p></li>
 
@@ -6283,17 +6216,13 @@
      <li><p>Zero or more <span title="space character">space
      characters</span>.</p></li>
 
-     <li><p>One or more <span
-     title="concept-datetime-digit">digits</span>, representing a
-     number of time units, scaled by the <span>duration time component
-     scale</span> specified (see below) to represent a number of
+     <li><p>One or more <span>ASCII digits</span>, representing a number of time units, scaled by
+     the <span>duration time component scale</span> specified (see below) to represent a number of
      seconds.</p></li>
 
-     <li><p>If the <span>duration time component scale</span>
-     specified is 1 (i.e. the units are seconds), then, optionally, a
-     U+002E FULL STOP character (.) followed by one, two, or three <span
-     title="concept-datetime-digit">digits</span>, representing a
-     fraction of a second.</p></li>
+     <li><p>If the <span>duration time component scale</span> specified is 1 (i.e. the units are
+     seconds), then, optionally, a U+002E FULL STOP character (.) followed by one, two, or three
+     <span>ASCII digits</span>, representing a fraction of a second.</p></li>
 
      <li><p>Zero or more <span title="space character">space
      characters</span>.</p></li>
@@ -6435,12 +6364,10 @@
       not advance <var title="">position</var>. That is taken care of
       below.)</p>
 
-      <p>Otherwise, if <var title="">next character</var> is a
-      character in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-      NINE (9), then <span>collect a sequence of characters</span> in
-      the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
-      interpret the resulting sequence as a base-ten integer, and let
-      <var title="">N</var> be that number.</p>
+      <p>Otherwise, if <var title="">next character</var> is an <span title="ASCII digits">ASCII
+      digit</span>, then <span>collect a sequence of characters</span> that are <span>ASCII
+      digits</span>, interpret the resulting sequence as a base-ten integer, and let <var
+      title="">N</var> be that number.</p>
 
       <p>Otherwise <var title="">next character</var> is not part of a
       number; fail.</p>
@@ -6464,8 +6391,7 @@
 
       <ol>
 
-       <li><p><span>Collect a sequence of characters</span> in the
-       range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9). Let <var
+       <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>. Let <var
        title="">s</var> be the resulting sequence.</p></li>
 
        <li><p>If <var title="">s</var> is the empty string, then
@@ -6761,15 +6687,11 @@
   the color respectively, in the sRGB color space. <a
   href="#refsSRGB">[SRGB]</a></p>
 
-  <p>A string is a <dfn>valid simple color</dfn> if it is exactly
-  seven characters long, and the first character is a U+0023 NUMBER
-  SIGN character (#), and the remaining six characters are all in the
-  range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0041 LATIN
-  CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F, U+0061 LATIN
-  SMALL LETTER A to U+0066 LATIN SMALL LETTER F, with the first two
-  digits representing the red component, the middle two digits
-  representing the green component, and the last two digits
-  representing the blue component, in hexadecimal.</p>
+  <p>A string is a <dfn>valid simple color</dfn> if it is exactly seven characters long, and the
+  first character is a U+0023 NUMBER SIGN character (#), and the remaining six characters are all
+  <span>ASCII hex digits</span>, with the first two digits representing the red component, the
+  middle two digits representing the green component, and the last two digits representing the blue
+  component, in hexadecimal.</p>
 
   <p>A string is a <dfn>valid lowercase simple color</dfn> if it is a
   <span>valid simple color</span> and doesn't use any characters in
@@ -6795,11 +6717,8 @@
    <li><p>If the first character in <var title="">input</var> is not a
    U+0023 NUMBER SIGN character (#), then return an error.</p></li>
 
-   <li><p>If the last six characters of <var title="">input</var> are
-   not all in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE
-   (9), U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER
-   F, U+0061 LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F, then
-   return an error.</p></li>
+   <li><p>If the last six characters of <var title="">input</var> are not all <span>ASCII hex
+   digits</span>, then return an error.</p></li>
 
    <li><p>Let <var title="">result</var> be a <span>simple
    color</span>.</p>
@@ -6829,12 +6748,9 @@
    <li><p>Let <var title="">result</var> be a string consisting of a
    single U+0023 NUMBER SIGN character (#).</p></li>
 
-   <li><p>Convert the red, green, and blue components in turn to
-   two-digit hexadecimal numbers using the digits U+0030 DIGIT ZERO
-   (0) to U+0039 DIGIT NINE (9) and U+0061 LATIN SMALL LETTER A
-   to U+0066 LATIN SMALL LETTER F, zero-padding if necessary, and
-   append these numbers to <var title="">result</var>, in the order
-   red, green, blue.</p>
+   <li><p>Convert the red, green, and blue components in turn to two-digit hexadecimal numbers using
+   <span>lowercase ASCII hex digits</span>, zero-padding if necessary, and append these numbers to
+   <var title="">result</var>, in the order red, green, blue.</p>
 
    <li><p>Return <var title="">result</var>, which will be a
    <span>valid lowercase simple color</span>.</p></li>
@@ -6884,13 +6800,9 @@
 
    <li>
 
-    <p>If <var title="">input</var> is four characters long, and the
-    first character in <var title="">input</var> is a U+0023 NUMBER
-    SIGN character (#), and the last three characters of <var
-    title="">input</var> are all in the range U+0030 DIGIT ZERO (0)
-    to U+0039 DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+0046
-    LATIN CAPITAL LETTER F, and U+0061 LATIN SMALL LETTER A to U+0066
-    LATIN SMALL LETTER F, then run these substeps:</p>
+    <p>If <var title="">input</var> is four characters long, and the first character in <var
+    title="">input</var> is a U+0023 NUMBER SIGN character (#), and the last three characters of
+    <var title="">input</var> are all <span>ASCII hex digits</span>, then run these substeps:</p>
 
     <ol>
 
@@ -6930,11 +6842,8 @@
    <li><p>If the first character in <var title="">input</var> is a
    U+0023 NUMBER SIGN character (#), remove it.</p></li>
 
-   <li><p>Replace any character in <var title="">input</var> that is
-   not in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
-   U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F, and
-   U+0061 LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F with the
-   character U+0030 DIGIT ZERO (0).</p></li>
+   <li><p>Replace any character in <var title="">input</var> that is not an <span title="ASCII hex
+   digits">ASCII hex digit</span> with the character U+0030 DIGIT ZERO (0).</p></li>
 
    <li><p>While <var title="">input</var>'s length is zero or not a
    multiple of three, append a U+0030 DIGIT ZERO (0) character to <var
@@ -8106,7 +8015,7 @@
      <td><span title="concept-uda-input">input</span> is an <span>authority-based URL</span>, and contained a <span title="url-port"><port></span> component (possibly an empty one)
      <td>—
      <td>—
-     <td>Remove all characters in the new value from the first that is not in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), if any.
+     <td>Remove all characters in the new value from the first that is not an <span title="ASCII digits">ASCII digit</span>, if any.
          Remove any leading U+0030 DIGIT ZERO characters (0) in the new value.
          If the resulting string is empty, set it to a single U+0030 DIGIT ZERO character (0).
      <td><span title="concept-uda-input">input</span> is an <span>authority-based URL</span>,
@@ -10677,13 +10586,10 @@
 
   </ol>
 
-  <p>All the numeric components above, other than the year, must be
-  given as two digits in the range U+0030 DIGIT ZERO (0) to U+0039
-  DIGIT NINE (9) representing the number in base ten, zero-padded if
-  necessary. The year must be given as the shortest possible string of
-  four or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
-  DIGIT NINE (9) representing the number in base ten, zero-padded if
-  necessary.</p>
+  <p>All the numeric components above, other than the year, must be given as two <span>ASCII
+  digits</span> representing the number in base ten, zero-padded if necessary. The year must be
+  given as the shortest possible string of four or more <span>ASCII digits</span> representing the
+  number in base ten, zero-padded if necessary.</p>
 
   <p>The <code>Document</code>'s source file's last modification date
   and time must be derived from relevant features of the networking
@@ -12619,8 +12525,7 @@
   namespace whose name starts with the string "<dfn
   title="attr-data-*"><code>data-</code></dfn>", has at least one
   character after the hyphen, is <span>XML-compatible</span>, and
-  contains no characters in the range U+0041 to U+005A (LATIN CAPITAL
-  LETTER A to LATIN CAPITAL LETTER Z).</p>
+  contains no <span>uppercase ASCII letters</span>.</p>
 
   <p class="note">All attribute names on <span>HTML elements</span> in
   <span>HTML documents</span> get ASCII-lowercased automatically, so
@@ -12701,20 +12606,15 @@
 
      <li>For each content attribute on the element whose first five
      characters are the string "<code title="">data-</code>" and whose
-     remaining characters (if any) do not include any characters in
-     the range U+0041 to U+005A (LATIN CAPITAL LETTER A to LATIN
-     CAPITAL LETTER Z), add a name-value pair to <var
+     remaining characters (if any) do not include any <span>uppercase ASCII letters</span>, add a name-value pair to <var
      title="">list</var> whose name is the attribute's name with the
      first five characters removed and whose value is the attribute's
      value.</li>
 
-     <li>For each name <var title="">list</var>, for each U+002D
-     HYPHEN-MINUS character (-) in the name that is followed by a
-     character in the range U+0061 to U+007A (U+0061 LATIN SMALL
-     LETTER A to U+007A LATIN SMALL LETTER Z), remove the U+002D
-     HYPHEN-MINUS character (-) and replace the character that
-     followed it by the same character <span>converted to ASCII
-     uppercase</span>.</li>
+     <li>For each name <var title="">list</var>, for each U+002D HYPHEN-MINUS character (-) in the
+     name that is followed by a <span title="lowercase ASCII letters">lowercase ASCII letter</span>,
+     remove the U+002D HYPHEN-MINUS character (-) and replace the character that followed it by the
+     same character <span>converted to ASCII uppercase</span>.</li>
 
      <li>Return <var title="">list</var>.</li>
 
@@ -12732,14 +12632,11 @@
      <li>Let <var title="">value</var> be the value passed to the
      algorithm.</li>
 
-     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS
-     character (-) followed by a character in the range U+0061 to
-     U+007A (U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
-     Z), throw a <code>SyntaxError</code> exception and abort these
-     steps.</li>
+     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS character (-) followed by a
+     <span title="lowercase ASCII letters">lowercase ASCII letter</span>, throw a
+     <code>SyntaxError</code> exception and abort these steps.</li>
 
-     <li>For each character in the range U+0041 to U+005A (U+0041
-     LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z) in <var
+     <li>For each <span title="uppercase ASCII letters">uppercase ASCII letter</span> in <var
      title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
      before the character and replace the character with the same
      character <span>converted to ASCII lowercase</span>.</li>
@@ -12766,14 +12663,11 @@
      <li>Let <var title="">name</var> be the name passed to the
      algorithm.</li>
 <!--(can't happen while the DOMStringMap deleter has no name)
-     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS
-     character (-) followed by a character in the range U+0061 to
-     U+007A (U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
-     Z), throw a <code>SyntaxError</code> exception and abort these
-     steps.</li>
+     <li>If <var title="">name</var> contains a U+002D HYPHEN-MINUS character (-) followed by a
+     <span title="lowercase ASCII letters">lowercase ASCII letter</span>, throw a
+     <code>SyntaxError</code> exception and abort these steps.</li>
 -->
-     <li>For each character in the range U+0041 to U+005A (U+0041
-     LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z) in <var
+     <li>For each <span title="uppercase ASCII letters">uppercase ASCII letter</span> in <var
      title="">name</var>, insert a U+002D HYPHEN-MINUS character (-)
      before the character and replace the character with the same
      character <span>converted to ASCII lowercase</span>.</li>
@@ -16682,8 +16576,7 @@
 
      <li><p><span>Skip whitespace</span>.</p></li>
 
-     <li><p><span title="collect a sequence of characters">Collect a
-     sequence of characters</span> that are not<!--neither--> <span
+     <li><p><span>Collect a sequence of characters</span> that are not<!--neither--> <span
      title="space character">space characters</span><!-- nor a U+002C
      COMMA character (,)-->.</p></li>
 
@@ -16797,18 +16690,13 @@
 
      <li><p><span>Skip whitespace</span>.</p></li>
 
-     <li><p><span title="collect a sequence of characters">Collect a
-     sequence of characters</span> in the range U+0030 DIGIT ZERO (0)
-     to U+0039 DIGIT NINE (9), and parse the resulting string using
-     the <span>rules for parsing non-negative integers</span>. If the
-     sequence of characters collected is the empty string, then no
-     number will have been parsed; abort these steps. Otherwise, let
-     <var title="">time</var> be the parsed number.</p></li>
+     <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>, and
+     parse the resulting string using the <span>rules for parsing non-negative integers</span>. If
+     the sequence of characters collected is the empty string, then no number will have been parsed;
+     abort these steps. Otherwise, let <var title="">time</var> be the parsed number.</p></li>
 
-     <li><p><span title="collect a sequence of characters">Collect a
-     sequence of characters</span> in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9) and U+002E FULL STOP (.). Ignore any collected
-     characters.</p></li>
+     <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span> and
+     U+002E FULL STOP characters (.). Ignore any collected characters.</p></li>
 
      <li><p><span>Skip whitespace</span>.</p></li>
 
@@ -22796,10 +22684,9 @@
      Otherwise, let <var title="">x</var> and <var title="">y</var> be zero.</li>
 
      <li>Let the <dfn><var>hyperlink suffix</var></dfn> be a U+003F QUESTION MARK character, the
-     value of <var title="">x</var> expressed as a base-ten integer using ASCII digits, a U+002C
-     COMMA character (,), and the value of <var title="">y</var> expressed as a base-ten integer
-     using ASCII digits. ASCII digits are the characters in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9).</li>
+     value of <var title="">x</var> expressed as a base-ten integer using <span>ASCII digits</span>,
+     a U+002C COMMA character (,), and the value of <var title="">y</var> expressed as a base-ten
+     integer using <span>ASCII digits</span>.</li>
 
     </ol>
 
@@ -23843,7 +23730,7 @@
    </dd>
 
 
-   <dt>Four or more <span title="concept-datetime-digit">digits</span>, at least one of which is not U+0030 DIGIT ZERO (0)</dt>
+   <dt>Four or more <span>ASCII digits</span>, at least one of which is not U+0030 DIGIT ZERO (0)</dt>
 
    <dd>
 
@@ -23918,12 +23805,9 @@
    returns a <span title="concept-week">week</span>, that is the
    machine-readable equivalent; abort these steps.</p></li>
 
-   <li><p>If the element's <span>datetime value</span> consists of
-   only characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-   NINE (9), at least one of which is not U+0030 DIGIT ZERO (0),
-   then the machine-readable equivalent is the base-ten
-   interpretation of those digits, representing a year; abort these
-   steps.</p></li>
+   <li><p>If the element's <span>datetime value</span> consists of only <span>ASCII digits</span>,
+   at least one of which is not U+0030 DIGIT ZERO (0), then the machine-readable equivalent is the
+   base-ten interpretation of those digits, representing a year; abort these steps.</p></li>
 
    <li><p>If <span title="parse a duration string">parsing a duration
    string</span> from the element's <span>datetime value</span>
@@ -29496,8 +29380,7 @@
   title="attr-embed-vspace">vspace</code> <!-- when editing, see also
   note below --> may be specified on the <code>embed</code> element,
   so long as its name is <span>XML-compatible</span> and contains no
-  characters in the range U+0041 to U+005A (LATIN CAPITAL LETTER A to
-  LATIN CAPITAL LETTER Z). These attributes are then passed as
+  <span>uppercase ASCII letters</span>. These attributes are then passed as
   parameters to the <span>plugin</span>.</p>
 
   <p class="note">All attributes in <span>HTML documents</span> get
@@ -37481,9 +37364,7 @@
      track dispatch type</span> must be set to the concatenation of
      the <var title="">stream type</var> byte and the zero or more
      <var title="">descriptor bytes</var> bytes, expressed in
-     hexadecimal using characters in the ranges U+0030 DIGIT ZERO (0)
-     to U+0039 DIGIT NINE (9) and U+0041 LATIN CAPITAL LETTER A to
-     U+0046 LATIN CAPITAL LETTER F.
+     hexadecimal using <span>uppercase ASCII hex digits</span>.
      <a href="#refsMPEG2">[MPEG2]</a>
 
      </dd>
@@ -39571,9 +39452,8 @@
 
     <ol>
 
-     <li>Two or more characters in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9), representing the <var title="">hours</var>
-     as a base ten integer.</li>
+     <li>Two or more <span>ASCII digits</span>, representing the <var title="">hours</var> as a base
+     ten integer.</li>
 
      <li>A U+003A COLON character (:)</li>
 
@@ -39581,22 +39461,17 @@
 
    </li>
 
-   <li>Two characters in the range U+0030 DIGIT ZERO (0) to U+0039
-   DIGIT NINE (9), representing the <var title="">minutes</var> as a
-   base ten integer in the range 0 ≤ <var
-   title="">minutes</var> ≤ 59.</li>
+   <li>Two <span>ASCII digits</span>, representing the <var title="">minutes</var> as a base ten
+   integer in the range 0 ≤ <var title="">minutes</var> ≤ 59.</li>
 
    <li>A U+003A COLON character (:)</li>
 
-   <li>Two characters in the range U+0030 DIGIT ZERO (0) to U+0039
-   DIGIT NINE (9), representing the <var title="">seconds</var> as a
-   base ten integer in the range 0 ≤ <var
-   title="">seconds</var> ≤ 59.</li>
+   <li>Two <span>ASCII digits</span>, representing the <var title="">seconds</var> as a base ten
+   integer in the range 0 ≤ <var title="">seconds</var> ≤ 59.</li>
 
    <li>A U+002E FULL STOP character (.).</li>
 
-   <li>Three characters in the range U+0030 DIGIT ZERO (0) to U+0039
-   DIGIT NINE (9), representing the thousandths of a second <var
+   <li>Three <span>ASCII digits</span>, representing the thousandths of a second <var
    title="">seconds-frac</var> as a base ten integer.</li>
 
   </ol>
@@ -39646,7 +39521,7 @@
      <dt>To represent a specific position relative to the video frame</dt>
      <dd>
       <ol>
-       <li>One or more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9).</li>
+       <li>One or more <span>ASCII digits</span>.</li>
        <li>A U+0025 PERCENT SIGN character (%).</li>
       </ol>
      </dd>
@@ -39654,7 +39529,7 @@
      <dd>
       <ol>
        <li>Optionally a U+002D HYPHEN-MINUS character (-).</li>
-       <li>One or more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9).</li>
+       <li>One or more <span>ASCII digits</span>.</li>
       </ol>
      </dd>
     </dl>
@@ -39676,7 +39551,7 @@
   <ol>
    <li><p>The string "<code title="">position</code>".</p></li>
    <li>A U+003A COLON character (:).</li>
-   <li>One or more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9).</li>
+   <li>One or more <span>ASCII digits</span>.</li>
    <li>A U+0025 PERCENT SIGN character (%).</li>
   </ol>
 
@@ -39694,7 +39569,7 @@
   <ol>
    <li><p>The string "<code title="">size</code>".</p></li>
    <li>A U+003A COLON character (:).</li>
-   <li>One or more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9).</li>
+   <li>One or more <span>ASCII digits</span>.</li>
    <li>A U+0025 PERCENT SIGN character (%).</li>
   </ol>
 
@@ -40385,16 +40260,12 @@
 
         <ol>
 
-         <li><p>If <var title="">value</var> contains any characters
-         other than U+002D HYPHEN-MINUS characters (-), U+0025 PERCENT
-         SIGN characters (%), and characters in the range U+0030 DIGIT
-         ZERO (0) to U+0039 DIGIT NINE (9), then jump to the step
-         labeled <i>next setting</i>.</p></li>
+         <li><p>If <var title="">value</var> contains any characters other than U+002D HYPHEN-MINUS
+         characters (-), U+0025 PERCENT SIGN characters (%), and <span>ASCII digits</span>, then
+         jump to the step labeled <i>next setting</i>.</p></li>
 
-         <li><p>If <var title="">value</var> does not contain at least
-         one character in the range U+0030 DIGIT ZERO (0) to U+0039
-         DIGIT NINE (9), then jump to the step labeled <i>next
-         setting</i>.</p></li>
+         <li><p>If <var title="">value</var> does not contain at least one <span title="ASCII
+         digits">ASCII digit</span>, then jump to the step labeled <i>next setting</i>.</p></li>
 
          <li><p>If any character in <var title="">value</var> other
          than the first character is a U+002D HYPHEN-MINUS character
@@ -40441,16 +40312,13 @@
 
         <ol>
 
-         <li><p>If <var title="">value</var> contains any characters
-         other than U+0025 PERCENT SIGN characters (%) and characters
-         in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
-         then jump to the step labeled <i>next setting</i>.</p></li>
-
-         <li><p>If <var title="">value</var> does not contain at least
-         one character in the range U+0030 DIGIT ZERO (0) to U+0039
-         DIGIT NINE (9), then jump to the step labeled <i>next
+         <li><p>If <var title="">value</var> contains any characters other than U+0025 PERCENT SIGN
+         characters (%) and <span>ASCII digits</span>, then jump to the step labeled <i>next
          setting</i>.</p></li>
 
+         <li><p>If <var title="">value</var> does not contain at least one <span title="ASCII
+         digits">ASCII digit</span>, then jump to the step labeled <i>next setting</i>.</p></li>
+
          <li><p>If any character in <var title="">value</var> other
          than the last character is a U+0025 PERCENT SIGN character
          (%), then jump to the step labeled <i>next
@@ -40482,16 +40350,13 @@
 
         <ol>
 
-         <li><p>If <var title="">value</var> contains any characters
-         other than U+0025 PERCENT SIGN characters (%) and characters
-         in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9),
-         then jump to the step labeled <i>next setting</i>.</p></li>
-
-         <li><p>If <var title="">value</var> does not contain at least
-         one character in the range U+0030 DIGIT ZERO (0) to U+0039
-         DIGIT NINE (9), then jump to the step labeled <i>next
+         <li><p>If <var title="">value</var> contains any characters other than U+0025 PERCENT SIGN
+         characters (%) and <span>ASCII digits</span>, then jump to the step labeled <i>next
          setting</i>.</p></li>
 
+         <li><p>If <var title="">value</var> does not contain at least one <span title="ASCII
+         digits">ASCII digit</span>, then jump to the step labeled <i>next setting</i>.</p></li>
+
          <li><p>If any character in <var title="">value</var> other
          than the last character is a U+0025 PERCENT SIGN character
          (%), then jump to the step labeled <i>next
@@ -40589,12 +40454,11 @@
    steps.</p></li>
 
    <li><p>If the character indicated by <var title="">position</var>
-   is not one of U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then
+   is not an <span title="ASCII digits">ASCII digit</span>, then
    return an error and abort these steps.</p></li>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and let <var
-   title="">string</var> be the collected substring.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>, and let
+   <var title="">string</var> be the collected substring.</p></li>
 
    <li><p>Interpret <var title="">string</var> as a base-ten
    integer. Let <var title="">value<sub>1</sub></var> be that
@@ -40611,9 +40475,8 @@
    return an error and abort these steps. Otherwise, move <var
    title="">position</var> forwards one character.</p></li>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and let <var
-   title="">string</var> be the collected substring.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>, and let
+   <var title="">string</var> be the collected substring.</p></li>
 
    <li><p>If <var title="">string</var> is not exactly two characters
    in length, return an error and abort these steps.</p></li>
@@ -40638,9 +40501,8 @@
      return an error and abort these steps. Otherwise, move <var
      title="">position</var> forwards one character.</p></li>
 
-     <li><p><span>Collect a sequence of characters</span> in the range
-     U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and let <var
-     title="">string</var> be the collected substring.</p></li>
+     <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>, and
+     let <var title="">string</var> be the collected substring.</p></li>
 
      <li><p>If <var title="">string</var> is not exactly two
      characters in length, return an error and abort these
@@ -40670,9 +40532,8 @@
    then return an error and abort these steps. Otherwise, move <var
    title="">position</var> forwards one character.</p></li>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and let <var
-   title="">string</var> be the collected substring.</p></li>
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>, and let
+   <var title="">string</var> be the collected substring.</p></li>
 
    <li><p>If <var title="">string</var> is not exactly three
    characters in length, return an error and abort these
@@ -41142,9 +41003,7 @@
         <i>next</i>.</p>
        </dd>
 
-       <dt>Characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)</dt>
-       <dt>Characters in the range U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z</dt>
-       <dt>Characters in the range U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER Z</dt>
+       <dt><span>Alphanumeric ASCII characters</span></dt>
        <dd>
         <p>Append <var title="">c</var> to <var title="">buffer</var>
         and jump to the step labeled <i>next</i>.</p>
@@ -41245,7 +41104,7 @@
         <i>next</i>.</p>
        </dd>
 
-       <dt>Characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)</dt>
+       <dt><span>ASCII digits</span></dt>
        <dd>
         <p>Set <var title="">result</var> to <var title="">c</var>,
         set <var title="">tokenizer state</var> to the <span>WebVTT
@@ -45611,32 +45470,24 @@
   therefore only useful for assigning to other attributes or for
   comparison to other gradients or patterns.)</p>
 
-  <p>The <dfn>serialization of a color</dfn> for a color value is a
-  string, computed as follows: if it has alpha equal to 1.0, then the
-  string is a lowercase six-digit hex value, prefixed with a "#"
-  character (U+0023 NUMBER SIGN), with the first two digits
-  representing the red component, the next two digits representing the
-  green component, and the last two digits representing the blue
-  component, the digits being in the range 0-9 a-f (U+0030 to U+0039
-  and U+0061 to U+0066). Otherwise, the color value has alpha less
-  than 1.0, and the string is the color value in the CSS <code
-  title="">rgba()</code> functional-notation format: the literal
-  string <code title="">rgba</code> (U+0072 U+0067 U+0062 U+0061)
-  followed by a U+0028 LEFT PARENTHESIS, a base-ten integer in the
-  range 0-255 representing the red component (using digits 0-9, U+0030
-  to U+0039, in the shortest form possible), a literal U+002C COMMA
-  and U+0020 SPACE, an integer for the green component, a comma and a
-  space, an integer for the blue component, another comma and space, a
-  U+0030 DIGIT ZERO, if the alpha value is greater than zero then a
-  U+002E FULL STOP (representing the decimal point), if the alpha
-  value is greater than zero then one or more digits in the range 0-9
-  (U+0030 to U+0039) representing the fractional part of the alpha<!--
-  value with no trailing zeros (implied by next sentence)-->, and
-  finally a U+0029 RIGHT PARENTHESIS. User agents must express the
-  fractional part of the alpha value, if any, with the level of
-  precision necessary for the alpha value, when reparsed, to be
-  interpreted as the same alpha value.</p> <!-- if people complain
-  this is unreadable, expand it into a <dl> with two nested <ol>s -->
+  <p>The <dfn>serialization of a color</dfn> for a color value is a string, computed as follows: if
+  it has alpha equal to 1.0, then the string is a lowercase six-digit hex value, prefixed with a "#"
+  character (U+0023 NUMBER SIGN), with the first two digits representing the red component, the next
+  two digits representing the green component, and the last two digits representing the blue
+  component, the digits being <span>lowercase ASCII hex digits</span>. Otherwise, the color value
+  has alpha less than 1.0, and the string is the color value in the CSS <code title="">rgba()</code>
+  functional-notation format: the literal string <code title="">rgba</code> (U+0072 U+0067 U+0062
+  U+0061) followed by a U+0028 LEFT PARENTHESIS, a base-ten integer in the range 0-255 representing
+  the red component (using <span>ASCII digits</span> in the shortest form possible), a literal
+  U+002C COMMA and U+0020 SPACE, an integer for the green component, a comma and a space, an integer
+  for the blue component, another comma and space, a U+0030 DIGIT ZERO, if the alpha value is
+  greater than zero then a U+002E FULL STOP (representing the decimal point), if the alpha value is
+  greater than zero then one or more <span>ASCII digits</span> representing the fractional part of
+  the alpha<!-- value with no trailing zeros (implied by next sentence)-->, and finally a U+0029
+  RIGHT PARENTHESIS. User agents must express the fractional part of the alpha value, if any, with
+  the level of precision necessary for the alpha value, when reparsed, to be interpreted as the same
+  alpha value.</p> <!-- if people complain this is unreadable, expand it into a <dl> with two nested
+  <ol>s -->
 
   <p>When the context is created, the <code
   title="dom-context-2d-fillStyle">fillStyle</code> and <code
@@ -67746,19 +67597,15 @@
       <p>If there isn't one, do nothing. Otherwise, proceed as
       follows:</p>
 
-      <p>If <var title="">submitter</var> is an <code>input</code>
-      element whose <code title="attr-input-type">type</code>
-      attribute is in the <span title="attr-input-type-image">Image
-      Button</span> state, then let <var title="">result</var> be the
-      string formed by concatenating the <span
-      title="concept-input-type-image-coordinate">selected
-      coordinate</span>'s <var title="">x</var>-component, expressed
-      as a base-ten number using the characters U+0030 DIGIT ZERO (0)
-      to U+0039 DIGIT NINE (9) to represent the digits 0 to 9, a
-      U+002C COMMA character (,), and the <span
-      title="concept-input-type-image-coordinate">selected
-      coordinate</span>'s <var title="">y</var>-component, expressed
-      in the same way as the <var title="">x</var>-component.</p>
+      <p>If <var title="">submitter</var> is an <code>input</code> element whose <code
+      title="attr-input-type">type</code> attribute is in the <span
+      title="attr-input-type-image">Image Button</span> state, then let <var title="">result</var>
+      be the string formed by concatenating the <span
+      title="concept-input-type-image-coordinate">selected coordinate</span>'s <var
+      title="">x</var>-component, expressed as a base-ten number using <span>ASCII digits</span>, a
+      U+002C COMMA character (,), and the <span title="concept-input-type-image-coordinate">selected
+      coordinate</span>'s <var title="">y</var>-component, expressed in the same way as the <var
+      title="">x</var>-component.</p>
 
       <p>Otherwise, if <var title="">submitter</var> has a <span
       title="concept-fe-value">value</span>, then let <var
@@ -68156,8 +68003,7 @@
      cannot be expressed using the selected character encoding,
      replace the character by a string consisting of a U+0026
      AMPERSAND character (&), a U+0023 NUMBER SIGN character (#),
-     one or more characters in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9) representing the Unicode code point of the
+     one or more <span>ASCII digits</span> representing the Unicode code point of the
      character in base ten, and finally a U+003B SEMICOLON character
      (;).</p></li><!-- we should say it should be the shortest
      possible string, no leading zeros. this whole step is asinine,
@@ -68200,12 +68046,9 @@
 
         <ol>
 
-         <li><p>Let <var title="">s</var> be a string consisting of a
-         U+0025 PERCENT SIGN character (%) followed by two characters
-         in the ranges U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)
-         and U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL
-         LETTER F representing the hexadecimal value of the byte in
-         question (zero-padded if necessary).</p></li>
+         <li><p>Let <var title="">s</var> be a string consisting of a U+0025 PERCENT SIGN character
+         (%) followed by <span>uppercase ASCII hex digits</span> representing the hexadecimal value
+         of the byte in question (zero-padded if necessary).</p></li>
 
          <li><p>Encode the string <var title="">s</var> as US-ASCII,
          so that it is now a byte string.</p>
@@ -68338,10 +68181,7 @@
       escape. This replacement most not be recursive.</p>
 
       <p>An escape is a U+0025 PERCENT SIGN character (%) followed by
-      two characters in the ranges U+0030 DIGIT ZERO (0) to U+0039
-      DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+0046 LATIN
-      CAPITAL LETTER F, and U+0061 LATIN SMALL LETTER A to U+0066
-      LATIN SMALL LETTER F.</p>
+      two <span>ASCII hex digits</span>.</p>
 
       <p>The character represented by an escape is the Unicode
       character whose code point is equal to the value of the two
@@ -68457,8 +68297,7 @@
      cannot be expressed using the selected character encoding,
      replace the character by a string consisting of a U+0026
      AMPERSAND character (&), a U+0023 NUMBER SIGN character (#),
-     one or more characters in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9) representing the Unicode code point of the
+     one or more <span>ASCII digits</span> representing the Unicode code point of the
      character in base ten, and finally a U+003B SEMICOLON character
      (;).</p></li><!-- we should say it should be the shortest
      possible string, no leading zeros. this whole step is asinine,
@@ -72154,8 +71993,7 @@
 
    <li><p>If either <var title="">width string</var> or <var
    title="">height string</var> start with a U+0030 DIGIT ZERO (0)
-   character or contain any characters other than characters in the
-   range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then this
+   character or contain any characters other than <span>ASCII digits</span>, then this
    keyword doesn't represent anything. Abort these steps for that
    keyword.</p></li>
 
@@ -76213,24 +76051,20 @@
      <li>Optionally, either a U+002B PLUS SIGN character (+) or a
      U+002D HYPHEN-MINUS character (-).</li>
 
-     <li>One or more digits in the range U+0030 DIGIT ZERO (0) to
-     U+0039 DIGIT NINE (9).</li>
+     <li>One or more <span>ASCII digits</span>.</li>
 
      <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9).</li>
+     or more <span>ASCII digits</span>.</li>
 
      <li>A U+003B SEMICOLON character (;).</li>
 
      <li>Optionally, either a U+002B PLUS SIGN character (+) or a
      U+002D HYPHEN-MINUS character (-).</li>
 
-     <li>One or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
-     DIGIT NINE (9).</li>
+     <li>One or more <span>ASCII digits</span>.</li>
 
      <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9).</li>
+     or more <span>ASCII digits</span>.</li>
 
     </ol>
 
@@ -77612,24 +77446,20 @@
      <li>Optionally, either a U+002B PLUS SIGN character (+) or a
      U+002D HYPHEN-MINUS character (-).</li>
 
-     <li>One or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
-     DIGIT NINE (9).</li>
+     <li>One or more <span>ASCII digits</span>.</li>
 
      <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9).</li>
+     or more <span>ASCII digits</span>.</li>
 
      <li>A U+003B SEMICOLON character (;).</li>
 
      <li>Optionally, either a U+002B PLUS SIGN character (+) or a
      U+002D HYPHEN-MINUS character (-).</li>
 
-     <li>One or more digits in the range U+0030 DIGIT ZERO (0) to U+0039
-     DIGIT NINE (9).</li>
+     <li>One or more <span>ASCII digits</span>.</li>
 
      <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-     NINE (9).</li>
+     or more <span>ASCII digits</span>.</li>
 
     </ol>
 
@@ -89001,9 +88831,7 @@
     <ul class="brief">
      <li>U+002B PLUS SIGN (+)
      <li>U+002F SOLIDUS (/)
-     <li>U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9)
-     <li>U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER Z
-     <li>U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER Z
+     <li><span>Alphanumeric ASCII characters</span>
     </ul>
 
    </li>
@@ -90374,14 +90202,11 @@
     (as in "<code>mailto:</code>"), will never match anything, since
     schemes don't contain colons.</p>
 
-    <p>If the <code
-    title="dom-navigator-registerProtocolHandler">registerProtocolHandler()</code>
-    method is invoked with a scheme that is neither a
-    <span>whitelisted scheme</span> nor a scheme whose value starts
-    with the substring "<code title="">web+</code>" and otherwise
-    contains only characters in the range U+0061 LATIN SMALL LETTER A
-    to U+007A LATIN SMALL LETTER Z, the user agent must throw a
-    <code>SecurityError</code> exception.</p>
+    <p>If the <code title="dom-navigator-registerProtocolHandler">registerProtocolHandler()</code>
+    method is invoked with a scheme that is neither a <span>whitelisted scheme</span> nor a scheme
+    whose value starts with the substring "<code title="">web+</code>" and otherwise contains only
+    <span>lowercase ASCII characters</span>, the user agent must throw a <code>SecurityError</code>
+    exception.</p>
 
     <p>The following schemes are the <dfn title="whitelisted
     scheme">whitelisted schemes</dfn>:</p>
@@ -98256,8 +98081,7 @@
 
    <dt>If the field name is "retry"</dt>
 
-   <dd><p>If the field value consists of only characters in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), then interpret the
+   <dd><p>If the field value consists of only <span>ASCII digits</span>, then interpret the
    field value as an integer in base ten, and set the event stream's
    <span title="concept-event-stream-reconnection-time">reconnection
    time</span> to that integer. Otherwise, ignore the field.</p></dd>
@@ -101774,12 +101598,10 @@
 
   </div>
 
-  <p>Many strings in the HTML syntax (e.g. the names of elements and
-  their attributes) are case-insensitive, but only for characters in
-  the ranges U+0041 to U+005A (LATIN CAPITAL LETTER A to LATIN CAPITAL
-  LETTER Z) and U+0061 to U+007A (LATIN SMALL LETTER A to LATIN SMALL
-  LETTER Z). For convenience, in this section this is just referred to
-  as "case-insensitive".</p>
+  <p>Many strings in the HTML syntax (e.g. the names of elements and their attributes) are
+  case-insensitive, but only for <span>uppercase ASCII letters</span> and <span>lowercase ASCII
+  letters</span>. For convenience, in this section this is just referred to as
+  "case-insensitive".</p>
 
 
   <h4>The DOCTYPE</h4>
@@ -102031,15 +101853,11 @@
   the content model and those described in this paragraph. Those
   restrictions are described below.</p>
 
-  <p>Tags contain a <dfn title="syntax-tag-name">tag name</dfn>,
-  giving the element's name. HTML elements all have names that only
-  use characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-  NINE (9), U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
-  Z, and U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL LETTER
-  Z. In the HTML syntax, tag names, even those for <span>foreign
-  elements</span>, may be written with any mix of lower- and uppercase
-  letters that, when converted to all-lowercase, matches the element's
-  tag name; tag names are case-insensitive.</p>
+  <p>Tags contain a <dfn title="syntax-tag-name">tag name</dfn>, giving the element's name. HTML
+  elements all have names that only use <span>alphanumeric ASCII characters</span>. In the HTML
+  syntax, tag names, even those for <span>foreign elements</span>, may be written with any mix of
+  lower- and uppercase letters that, when converted to all-lowercase, matches the element's tag
+  name; tag names are case-insensitive.</p>
 
 
   <h5>Start tags</h5>
@@ -102609,27 +102427,20 @@
 
    <dt>Decimal numeric character reference</dt>
 
-   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN
-   character (#), followed by one or more digits in the range U+0030
-   DIGIT ZERO (0) to U+0039 DIGIT NINE (9), representing a base-ten
-   integer that corresponds to a Unicode code point that is allowed
-   according to the definition below. The digits must then be followed
-   by a U+003B SEMICOLON character (;).</dd>
+   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN character (#), followed by one or more
+   <span>ASCII digits</span>, representing a base-ten integer that corresponds to a Unicode code
+   point that is allowed according to the definition below. The digits must then be followed by a
+   U+003B SEMICOLON character (;).</dd>
 
 
    <dt>Hexadecimal numeric character reference</dt>
 
-   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN
-   character (#), which must be followed by either a U+0078 LATIN
-   SMALL LETTER X character (x) or a U+0058 LATIN CAPITAL LETTER X
-   character (X), which must then be followed by one or more digits in
-   the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0061
-   LATIN SMALL LETTER A to U+0066 LATIN SMALL LETTER F, and U+0041
-   LATIN CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F,
-   representing a base-sixteen integer that corresponds to a Unicode
-   code point that is allowed according to the definition below. The
-   digits must then be followed by a U+003B SEMICOLON character
-   (;).</dd>
+   <dd>The ampersand must be followed by a U+0023 NUMBER SIGN character (#), which must be followed
+   by either a U+0078 LATIN SMALL LETTER X character (x) or a U+0058 LATIN CAPITAL LETTER X
+   character (X), which must then be followed by one or more <span>ASCII hex digits</span>,
+   representing a base-sixteen integer that corresponds to a Unicode code point that is allowed
+   according to the definition below. The digits must then be followed by a U+003B SEMICOLON
+   character (;).</dd>
 
   </dl>
 
@@ -102639,14 +102450,10 @@
   control characters other than <span title="space character">space
   characters</span>.</p>
 
-  <p>An <dfn title="syntax-ambiguous-ampersand">ambiguous
-  ampersand</dfn> is a U+0026 AMPERSAND character (&) that is
-  followed by one or more characters in the range U+0030 DIGIT ZERO
-  (0) to U+0039 DIGIT NINE (9), U+0061 LATIN SMALL LETTER A to U+007A
-  LATIN SMALL LETTER Z, and U+0041 LATIN CAPITAL LETTER A to U+005A
-  LATIN CAPITAL LETTER Z, followed by a U+003B SEMICOLON character
-  (;), where these characters do not match any of the names given in
-  the <span>named character references</span> section.</p>
+  <p>An <dfn title="syntax-ambiguous-ampersand">ambiguous ampersand</dfn> is a U+0026 AMPERSAND
+  character (&) that is followed by one or more <span>alphanumeric ASCII characters</span>,
+  followed by a U+003B SEMICOLON character (;), where these characters do not match any of the names
+  given in the <span>named character references</span> section.</p>
 
 
   <h4>CDATA sections</h4>
@@ -104624,14 +104431,14 @@
    <dt>U+002F SOLIDUS (/)</dt>
    <dd>Switch to the <span>end tag open state</span>.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Create a new start tag token, set its tag name to the
    lowercase version of the <span>current input character</span> (add 0x0020 to the
    character's code point), then switch to the <span>tag name
    state</span>. (Don't emit the token yet; further details will
    be filled in before it is emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><span title="lowercase ASCII letters">Lowercase ASCII letter</span></dt>
    <dd>Create a new start tag token, set its tag name to the
    <span>current input character</span>, then switch to the <span>tag
    name state</span>. (Don't emit the token yet; further details will
@@ -104654,14 +104461,14 @@
 
   <dl class="switch">
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Create a new end tag token, set its tag name to the lowercase
    version of the <span>current input character</span> (add 0x0020 to
    the character's code point), then switch to the <span>tag name
    state</span>. (Don't emit the token yet; further details will be
    filled in before it is emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><span title="lowercase ASCII letters">Lowercase ASCII letter</span></dt>
    <dd>Create a new end tag token, set its tag name to the
    <span>current input character</span>, then switch to the <span>tag
    name state</span>. (Don't emit the token yet; further details will
@@ -104703,7 +104510,7 @@
    <dd>Switch to the <span>data state</span>. Emit the current tag
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Append the lowercase version of the <span>current input
    character</span> (add 0x0020 to the character's code point) to the
    current tag token's tag name.</dd>
@@ -104749,7 +104556,7 @@
 
   <dl class="switch">
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Create a new end tag token, and set its tag name to the
    lowercase version of the <span>current input character</span> (add
    0x0020 to the character's code point). Append the <span>current
@@ -104758,7 +104565,7 @@
    the token yet; further details will be filled in before it is
    emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><span title="lowercase ASCII letters">Lowercase ASCII letter</span></dt>
    <dd>Create a new end tag token, and set its tag name to the
    <span>current input character</span>. Append the <span>current
    input character</span> to the <var>temporary buffer</var>. Finally,
@@ -104803,13 +104610,13 @@
    the current tag token. Otherwise, treat it as per the "anything
    else" entry below.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Append the lowercase version of the <span>current input
    character</span> (add 0x0020 to the character's code point) to the
    current tag token's tag name. Append the <span>current input
    character</span> to the <var>temporary buffer</var>.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><span title="lowercase ASCII letters">Lowercase ASCII letter</span></dt>
    <dd>Append the <span>current input character</span> to the current
    tag token's tag name. Append the <span>current input
    character</span> to the <var>temporary buffer</var>.</dd>
@@ -104850,7 +104657,7 @@
 
   <dl class="switch">
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Create a new end tag token, and set its tag name to the
    lowercase version of the <span>current input character</span> (add
    0x0020 to the character's code point). Append the <span>current
@@ -104859,7 +104666,7 @@
    the token yet; further details will be filled in before it is
    emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><span title="lowercase ASCII letters">Lowercase ASCII letter</span></dt>
    <dd>Create a new end tag token, and set its tag name to the
    <span>current input character</span>. Append the <span>current
    input character</span> to the <var>temporary buffer</var>. Finally,
@@ -104904,13 +104711,13 @@
    the current tag token. Otherwise, treat it as per the "anything
    else" entry below.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Append the lowercase version of the <span>current input
    character</span> (add 0x0020 to the character's code point) to the
    current tag token's tag name. Append the <span>current input
    character</span> to the <var>temporary buffer</var>.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><span title="lowercase ASCII letters">Lowercase ASCII letter</span></dt>
    <dd>Append the <span>current input character</span> to the current
    tag token's tag name. Append the <span>current input
    character</span> to the <var>temporary buffer</var>.</dd>
@@ -104955,7 +104762,7 @@
 
   <dl class="switch">
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Create a new end tag token, and set its tag name to the
    lowercase version of the <span>current input character</span> (add
    0x0020 to the character's code point). Append the <span>current
@@ -104964,7 +104771,7 @@
    the token yet; further details will be filled in before it is
    emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><span title="lowercase ASCII letters">Lowercase ASCII letter</span></dt>
    <dd>Create a new end tag token, and set its tag name to the
    <span>current input character</span>. Append the <span>current
    input character</span> to the <var>temporary buffer</var>. Finally,
@@ -105009,13 +104816,13 @@
    the current tag token. Otherwise, treat it as per the "anything
    else" entry below.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Append the lowercase version of the <span>current input
    character</span> (add 0x0020 to the character's code point) to the
    current tag token's tag name. Append the <span>current input
    character</span> to the <var>temporary buffer</var>.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><span title="lowercase ASCII letters">Lowercase ASCII letter</span></dt>
    <dd>Append the <span>current input character</span> to the current
    tag token's tag name. Append the <span>current input
    character</span> to the <var>temporary buffer</var>.</dd>
@@ -105166,7 +104973,7 @@
    <dd>Set the <var>temporary buffer</var> to the empty string. Switch
    to the <span>script data escaped end tag open state</span>.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Set the <var>temporary buffer</var> to the empty string. Append
    the lowercase version of the <span>current input character</span>
    (add 0x0020 to the character's code point) to the <var>temporary
@@ -105174,7 +104981,7 @@
    state</span>. Emit a U+003C LESS-THAN SIGN character token and the
    <span>current input character</span> as a character token.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><span title="lowercase ASCII letters">Lowercase ASCII letter</span></dt>
    <dd>Set the <var>temporary buffer</var> to the empty string. Append
    the <span>current input character</span> to the <var>temporary
    buffer</var>. Switch to the <span>script data double escape start
@@ -105195,7 +105002,7 @@
 
   <dl class="switch">
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Create a new end tag token, and set its tag name to the
    lowercase version of the <span>current input character</span> (add
    0x0020 to the character's code point). Append the <span>current
@@ -105204,7 +105011,7 @@
    state</span>. (Don't emit the token yet; further details will be
    filled in before it is emitted.)</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><span title="lowercase ASCII letters">Lowercase ASCII letter</span></dt>
    <dd>Create a new end tag token, and set its tag name to the
    <span>current input character</span>. Append the <span>current
    input character</span> to the <var>temporary buffer</var>. Finally,
@@ -105249,13 +105056,13 @@
    the current tag token. Otherwise, treat it as per the "anything
    else" entry below.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Append the lowercase version of the <span>current input
    character</span> (add 0x0020 to the character's code point) to the
    current tag token's tag name. Append the <span>current input
    character</span> to the <var>temporary buffer</var>.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><span title="lowercase ASCII letters">Lowercase ASCII letter</span></dt>
    <dd>Append the <span>current input character</span> to the current
    tag token's tag name. Append the <span>current input
    character</span> to the <var>temporary buffer</var>.</dd>
@@ -105289,13 +105096,13 @@
    data escaped state</span>. Emit the <span>current input
    character</span> as a character token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Append the lowercase version of the <span>current input
    character</span> (add 0x0020 to the character's code point) to the
    <var>temporary buffer</var>. Emit the <span>current input
    character</span> as a character token.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><span title="lowercase ASCII letters">Lowercase ASCII letter</span></dt>
    <dd>Append the <span>current input character</span> to the
    <var>temporary buffer</var>. Emit the <span>current input
    character</span> as a character token.</dd>
@@ -105441,13 +105248,13 @@
    double escaped state</span>. Emit the <span>current input
    character</span> as a character token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Append the lowercase version of the <span>current input
    character</span> (add 0x0020 to the character's code point) to the
    <var>temporary buffer</var>. Emit the <span>current input
    character</span> as a character token.</dd>
 
-   <dt>U+0061 LATIN SMALL LETTER A through to U+007A LATIN SMALL LETTER Z</dt>
+   <dt><span title="lowercase ASCII letters">Lowercase ASCII letter</span></dt>
    <dd>Append the <span>current input character</span> to the
    <var>temporary buffer</var>. Emit the <span>current input
    character</span> as a character token.</dd>
@@ -105479,7 +105286,7 @@
    <dd>Switch to the <span>data state</span>. Emit the current tag
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Start a new attribute in the current tag token. Set that
    attribute's name to the lowercase version of the <span>current input
    character</span> (add 0x0020 to the character's code point), and its
@@ -105535,7 +105342,7 @@
    <dd>Switch to the <span>data state</span>. Emit the current tag
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Append the lowercase version of the <span>current input
    character</span> (add 0x0020 to the character's code point) to the
    current attribute's name.</dd>
@@ -105592,7 +105399,7 @@
    <dd>Switch to the <span>data state</span>. Emit the current tag
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Start a new attribute in the current tag token. Set that
    attribute's name to the lowercase version of the <span>current
    input character</span> (add 0x0020 to the character's code point),
@@ -106121,7 +105928,7 @@
    <dt>U+0020 SPACE</dt>
    <dd>Ignore the character.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Create a new DOCTYPE token. Set the token's name to the
    lowercase version of the <span>current input character</span> (add 0x0020 to the
    character's code point). Switch to the <span>DOCTYPE name
@@ -106168,7 +105975,7 @@
    <dd>Switch to the <span>data state</span>. Emit the current DOCTYPE
    token.</dd>
 
-   <dt>U+0041 LATIN CAPITAL LETTER A through to U+005A LATIN CAPITAL LETTER Z</dt>
+   <dt><span title="uppercase ASCII letters">Uppercase ASCII letter</span></dt>
    <dd>Append the lowercase version of the <span>current input
    character</span> (add 0x0020 to the character's code point) to the
    current DOCTYPE token's name.</dd>
@@ -106717,14 +106524,9 @@
 
       <p>Consume the X.</p>
 
-      <p>Follow the steps below, but using the range of characters
-      U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), U+0061 LATIN
-      SMALL LETTER A to U+0066 LATIN SMALL LETTER F, and U+0041 LATIN
-      CAPITAL LETTER A to U+0046 LATIN CAPITAL LETTER F (in other
-      words, 0-9, A-F, a-f).</p>
+      <p>Follow the steps below, but using <span>ASCII hex digits</span>.</p>
 
-      <p>When it comes to interpreting the number, interpret it as a
-      hexadecimal number.</p>
+      <p>When it comes to interpreting the number, interpret it as a hexadecimal number.</p>
 
      </dd>
 
@@ -106733,8 +106535,7 @@
 
      <dd>
 
-      <p>Follow the steps below, but using the range of characters
-      U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9).</p>
+      <p>Follow the steps below, but using <span>ASCII digits</span>.</p>
 
       <p>When it comes to interpreting the number, interpret it as a
       decimal number.</p>
@@ -106743,8 +106544,8 @@
 
     </dl>
 
-    <p>Consume as many characters as match the range of characters
-    given above.</p>
+    <p>Consume as many characters as match the range of characters given above (<span>ASCII hex
+    digits</span> or <span>ASCII digits</span>).</p>
 
     <p>If no characters match the range, then don't consume any
     characters (and unconsume the U+0023 NUMBER SIGN character and, if
@@ -106839,26 +106640,18 @@
     column of the <span>named character references</span> table (in a
     <span>case-sensitive</span> manner).</p>
 
-    <p>If no match can be made, then no characters are consumed, and
-    nothing is returned. In this case, if the characters after the
-    U+0026 AMPERSAND character (&) consist of a sequence of one or
-    more characters in the range U+0030 DIGIT ZERO (0) to U+0039 DIGIT
-    NINE (9), U+0061 LATIN SMALL LETTER A to U+007A LATIN SMALL LETTER
-    Z, and U+0041 LATIN CAPITAL LETTER A to U+005A LATIN CAPITAL
-    LETTER Z, followed by a U+003B SEMICOLON character (;), then this
-    is a <span>parse error</span>.</p>
+    <p>If no match can be made, then no characters are consumed, and nothing is returned. In this
+    case, if the characters after the U+0026 AMPERSAND character (&) consist of a sequence of
+    one or more <span>alphanumeric ASCII characters</span> followed by a U+003B SEMICOLON character
+    (;), then this is a <span>parse error</span>.</p>
 
-    <p>If the character reference is being consumed <span
-    title="character reference in attribute value state">as part of an
-    attribute</span>, and the last character matched is not a U+003B
-    SEMICOLON character (;), and the next character is either a U+003D
-    EQUALS SIGN character (=) or in the range U+0030 DIGIT ZERO (0) to
-    U+0039 DIGIT NINE (9), U+0041 LATIN CAPITAL LETTER A to U+005A
-    LATIN CAPITAL LETTER Z, or U+0061 LATIN SMALL LETTER A to U+007A
-    LATIN SMALL LETTER Z, then, for historical reasons, all the
-    characters that were matched after the U+0026 AMPERSAND character
-    (&) must be unconsumed, and nothing is returned.</p>
-    <!-- "=" added because of http://www.w3.org/Bugs/Public/show_bug.cgi?id=9207#c5 -->
+    <p>If the character reference is being consumed <span title="character reference in attribute
+    value state">as part of an attribute</span>, and the last character matched is not a U+003B
+    SEMICOLON character (;), and the next character is either a U+003D EQUALS SIGN character (=) or
+    an <span title="alphanumeric ASCII characters">alphanumeric ASCII character</span>, then, for
+    historical reasons, all the characters that were matched after the U+0026 AMPERSAND character
+    (&) must be unconsumed, and nothing is returned.</p> <!-- "=" added because of
+    http://www.w3.org/Bugs/Public/show_bug.cgi?id=9207#c5 -->
 
     <p>Otherwise, a character reference is parsed. If the last
     character matched is not a U+003B SEMICOLON character (;), there
@@ -113175,8 +112968,7 @@
    character. Otherwise, let <var title="">mode</var> be
    <i>absolute</i>.</p></li>
 
-   <li><p><span>Collect a sequence of characters</span> in the range
-   U+0030 DIGIT ZERO (0) to U+0039 DIGIT NINE (9), and let the
+   <li><p><span>Collect a sequence of characters</span> that are <span>ASCII digits</span>, and let the
    resulting sequence be <var title="">digits</var>.</p></li>
 
    <li><p>If <var title="">digits</var> is the empty string, there is




More information about the Commit-Watchers mailing list