zmv - do not lowercase if there are more than one consecutive uppercase letters

I am using the following command

zmv -n -Q '(**/)(*[[:upper:]]*)(/)' '${1}${(L)${2//(#b)([[:upper:]])/-$match[1]}#-}'

to transform

% tree
.
├── EmptyFile.txt
├── FirstDirectoryName
│ ├── FourthDirectoryName
│ ├── secondDirectoryName
│ └── thirdDirectoryName
├── FourthDirectoryName
├── secondDirectoryName
└── thirdDirectoryName

To

% tree
.
├── EmptyFile.txt
├── first-directory-name
│ ├── fourth-directory-name
│ ├── second-directory-name
│ └── third-directory-name
├── fourth-directory-name
├── second-directory-name
└── third-directory-name

However there is a small problem.

I do not want to lowercase if there are more than one consecutive uppercase letters. I just want to put - behind the capital letters given it is not in the beginning.

% tree
.
├── DDDDDDD
├── FirstFolderToRename
│ ├── DDDDDDD
│ └── ThisIsDDDDD
├── secondFolderToRename
│ ├── DDDDDDD
│ └── ThisIsDDDDD
└── ThisIsDDDDD

Current Output

% zmv -n -Q ‘(**/)([[:upper:]])(/)’ ‘{1}{(L)${2//(#b)([[:upper:]])/-$match[1]}#-}’
mv – FirstFolderToRename/DDDDDDD FirstFolderToRename/d-d-d-d-d-d-d
mv – FirstFolderToRename/ThisIsDDDDD FirstFolderToRename/this-is-d-d-d-d-d
mv – secondFolderToRename/DDDDDDD secondFolderToRename/d-d-d-d-d-d-d
mv – secondFolderToRename/ThisIsDDDDD secondFolderToRename/this-is-d-d-d-d-d
mv – DDDDDDD d-d-d-d-d-d-d
mv – FirstFolderToRename first-folder-to-rename
mv – secondFolderToRename second-folder-to-rename
mv – ThisIsDDDDD this-is-d-d-d-d-d

Expected Output

mv -- FirstFolderToRename/DDDDDDD FirstFolderToRename/DDDDDDD
mv -- FirstFolderToRename/ThisIsDDDDD FirstFolderToRename/this-is-DDDDD
mv -- secondFolderToRename/DDDDDDD secondFolderToRename/DDDDDDD
mv -- secondFolderToRename/ThisIsDDDDD secondFolderToRename/this-is-DDDDD
mv -- DDDDDDD DDDDDDD
mv -- FirstFolderToRename first-folder-to-rename
mv -- secondFolderToRename second-folder-to-rename
mv -- ThisIsDDDDD this-is-DDDDD