Nguyễn Thái Ngọc Duy [off-list ref] writes:
"**" currently matches any characters including slashes. It's probably
too powerful. A more sensible definition may be match any characters
that the but the whole match must be wrapped by slashes. So "**" can
match none, "/", "/aaa/", "/aa/bb/" and so on but not "aa/bb".
I do not think this is something we want to retroactively change
after releasing it to the public, especially when we _know_ it is a
problem from the get-go (unlike the case we did not notice it had a
problem, release it to the public and then realize it and have to
scramble to devise a fix to bring more sanity in a backward
compatible way).
We must either declare that "**" that matches any characters is the
sane semantics and promise we will never change it, or have "**"
that matches \(/[^/]*\)*/ (sorry for a line noise^W^W^Wregexp) from
the beginning.