Thank you for your interest and input. I also posted the question on
Ubuntu Forums, where another user was able to reproduce the odd behavior.
It seems to be related to the "{,m}" idiom, which, it turns out, is not
specified in the POSIX standard, while the other variants, {m}, {n,m}, and
{m,}, are.
I agree, it seems unlikely that the brace expansion would effect a literal
several characters later, but there it is. And, I did check a hex dump to
make sure there was nothing odd about the "d" character that wouldn't
match.
In any case, I wound up changing the code to use awk instead of grep for
the match, allowing me to extract the desired field from matching records
in a single step.