# [J], 39 bytes ((<&91*64&<)(32+#)`(I.@[)`]}])&.(a.i.]) [Try it online!][TIO-ju9uxm0a] [J]: http://jsoftware.com/ [TIO-ju9uxm0a]: https://tio.run/##y/qvpKeepmBrpaCuoKNgoGAFxLp6Cs5BPm7/NTRs1CwNtcxM1Gw0NYyNtJU1EzQ89RyiNRNia2M11fQ0EvUy9WI1/2typSZn5CukKSioJzolu6S6KTooOqj/BwA "J – Try It Online" Convert the string to indexes within the J alphabet `a.`, create a mask for those that are uppercase `(<&91*64&<)`, then use amend `}` to update just those indexes `I.` that are uppercase with their lowercase counterpart `(32+#)`