Why doesn't the string match the root? From Reading 17 of 6.005 — Software Construction:

Exercise Reading a Grammar 4:
Which strings match the root nonterminal of this grammar?
root   ::= (A B)+
A      ::= [Aa]
B      ::= [Bb]


aaaBBB

abababab

aBAbabAB

AbAbAbA


Answer: 2 and 3

So far so good.

Exercise Reading a Grammar 3:
Which strings match the root nonterminal of this grammar?
root    ::= integer ('-' integer)+
integer ::= [0-9]+


617

617-253

617-253-1000

---

integer-integer-integer

5--5

3-6-293-1


Answer: 2, 3, and 7

In the last question, why doesn't integer-integer-integer match the root if it can be our first step, i.e.
root ⇒ integer-integer-integer
Sure, it would not be the end of the story (i.e. it would contain some non-terminals) but neither was aBAbabAB in the question above and yet it was accepted as a string that matched the root.
Many thanks!
In the text, they seem to suggest that there is a way of quoting characters so that they can be used as terminals even if they have the visible form as a non-terminal. One common quoting form is quotes ('B') which is illustrated.

Character classes ([bB]) are another quoting form. The B in that character class cannot be a non-terminal because it is precisely a character. So the non-terminal B, although it looks very similar, is distinct, and the Bs in the strings are characters, necessary by the definition of string they are using.