System: linux 64-bit (debian stable, latest release buster)
Bash version: GNU bash, version 5.0.3(1)-release (x86_64-pc-linux-gnu)
This bug occurs with the root account,
If a normal user types "su -l<enter>" and issues this "ls" statement,
ls -ld .!(?(.))
the output is without error. (the output lists all dot items with the
exception of the annoying literals "." and "..")
If "su<enter>" (without the -l), is given instead, then "!" is taken to
be something else as though I am attempting to fire up a bash history
command (eg: "!100" to run the 100th command from bash's history list)
The error with ls -ld .!(?(.)) after doing "su<enter>"
"bash: !: event not found"
I could run this command in any directory without any issue, the error
only occurs when entering the root account in bash with "su<enter>" from
a normal user account.
I'm not sure if this is entirely the fault of bash, but "ps" shows that
the shell being used after typing "su" is bash.