set str {Pattern[1]:
Key : "key1"
Value : 100
Pattern[2]:
Key : "key2"
Value : 20
Pattern[3]:
Key : "key3" Value : 30
Pattern[4]:
Key : "key4"
Value : 220"}
set RE {Pattern\[\d+\]:[^P]*(?:P(?!attern\[\d+\]:).)*}
set updateList [regexp -all -inline $RE $str]
puts $updateList
c2V0IHN0ciB7UGF0dGVyblsxXTogCktleSA6ICJrZXkxIiAKVmFsdWUgOiAxMDAKUGF0dGVyblsyXTogCktleSA6ICJrZXkyIiAKVmFsdWUgOiAyMApQYXR0ZXJuWzNdOiAKS2V5IDogImtleTMiIFZhbHVlIDogMzAKUGF0dGVybls0XTogCktleSA6ICJrZXk0IiAKVmFsdWUgOiAyMjAifQoKc2V0IFJFIHtQYXR0ZXJuXFtcZCtcXTpbXlBdKig/OlAoPyFhdHRlcm5cW1xkK1xdOikuKSp9CgpzZXQgdXBkYXRlTGlzdCBbcmVnZXhwIC1hbGwgLWlubGluZSAkUkUgJHN0cl0KcHV0cyAkdXBkYXRlTGlzdA==