Comportamento estranho dos intervalos BASH glob / regex

Estou vendo intervalos de suporte BASH (por exemplo, [A-Z]) se comportando de maneira inesperada.
Existe uma explicação para esse comportamento ou é um bug?

Digamos que eu tenho uma variável, da qual quero retirar todas as letras maiúsculas:

$ var='ABCDabcd0123'
$ echo "${var//[A-Z]/}"

O resultado que recebo é o seguinte:

a0123

Se eu fizer isso comsed, Obtenho um resultado esperado:

$ echo "${var}" | sed 's/[A-Z]//g'
abcd0123

O mesmo parece ser o caso da correspondência de regex interna do BASH:

$ [[ a =~ [A-Z] ]] ; echo $?
1
$ [[ b =~ [A-Z] ]] ; echo $?
0

Se eu marcar todas as letras minúsculas de 'a' a 'z', parece que apenas 'a' é uma exceção:

$ for l in {a..z}; do [[ $l =~ [A-Z] ]] || echo $l; done
a

Não tenho a correspondência sem distinção entre maiúsculas e minúsculas ativada e, mesmo que tenha, não deve fazer com que a letra 'a' se comporte de maneira diferente:

$ shopt -p nocasematch
shopt -u nocasematch

Para referência, estou usando o Cygwin e não vejo esse comportamento em nenhuma outra máquina:

$ uname
CYGWIN_NT-6.3
$ bash --version | head -1
GNU bash, version 4.3.46(7)-release (x86_64-unknown-cygwin)
$ locale
LANG=en_GB.UTF-8
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_ALL=

EDITAR:

Encontrei exatamente o mesmo problema relatado aqui:https://bugs.launchpad.net/ubuntu/+source/bash/+bug/120687
Então, acho que é um bug (?) Do agrupamento "en_GB.UTF-8", mas não o BASH propriamente dito.
ConfiguraçãoLC_COLLATE=C de fato resolve isso.

questionAnswers(1)

yourAnswerToTheQuestion