import java.util.*
fun main(args: Array<String>) {
val string = "field1:1234,field2:[[1, 3],[3,4]], field3:[[1, 3],[3,4]]"
val rx = """\w+:(?:(?=\[)(?:(?=.*?\[(?!.*?\1)(.*\](?!.*\2).*))(?=.*?\](?!.*?\2)(.*)).)+?.*?(?=\1)[^\[]*(?=\2$)|\w+)""".toRegex()
print( rx.findAll(string).map{it.value}.joinToString("\n") )
}
aW1wb3J0IGphdmEudXRpbC4qCiAKZnVuIG1haW4oYXJnczogQXJyYXk8U3RyaW5nPikgewogICAgdmFsIHN0cmluZyA9ICJmaWVsZDE6MTIzNCxmaWVsZDI6W1sxLCAzXSxbMyw0XV0sIGZpZWxkMzpbWzEsIDNdLFszLDRdXSIKICAgIHZhbCByeCA9ICIiIlx3KzooPzooPz1cWykoPzooPz0uKj9cWyg/IS4qP1wxKSguKlxdKD8hLipcMikuKikpKD89Lio/XF0oPyEuKj9cMikoLiopKS4pKz8uKj8oPz1cMSlbXlxbXSooPz1cMiQpfFx3KykiIiIudG9SZWdleCgpCiAgICBwcmludCggcnguZmluZEFsbChzdHJpbmcpLm1hcHtpdC52YWx1ZX0uam9pblRvU3RyaW5nKCJcbiIpICkKfQ==