input = c("XX-XXZZXX-XZXXXXX", "XX-XXXZXXZXZXXX", "XXXXXZXXXZXXZX-X",
"XXXZXXXZXZXZXXX", "XZXXX-XXXZXZXXX", "XX-XXX-ZZX", "XXZX-XXZXXX-XZ",
"XZXZXX-XXZXXZXX")
gsub("(?:^([^Z]*Z){2}|(?!^)\\G)[^-]*\\K-", "Z", input, perl=T)
aW5wdXQgPSBjKCJYWC1YWFpaWFgtWFpYWFhYWCIsICJYWC1YWFhaWFhaWFpYWFgiLCAiWFhYWFhaWFhYWlhYWlgtWCIsIAoiWFhYWlhYWFpYWlhaWFhYIiwgIlhaWFhYLVhYWFpYWlhYWCIsICJYWC1YWFgtWlpYIiwgIlhYWlgtWFhaWFhYLVhaIiwgCiJYWlhaWFgtWFhaWFhaWFgiKQpnc3ViKCIoPzpeKFteWl0qWil7Mn18KD8hXilcXEcpW14tXSpcXEstIiwgIloiLCBpbnB1dCwgcGVybD1UKQo=