import re
pattern = r'\bcast\((")?(zone)(?(1)"|\s)'
strings = [
'cast("zone" as varchar(100)) as zoneID',
'cast(zone as varchar(100)) as zoneID',
'cast(zone) as varchar(100)) as zoneID'
]
for s in strings:
m = re.search(pattern, s)
if m:
print(f"{m.group(2)} ---> {s}")
aW1wb3J0IHJlCgpwYXR0ZXJuID0gcidcYmNhc3RcKCgiKT8oem9uZSkoPygxKSJ8XHMpJwpzdHJpbmdzID0gWwogICAgJ2Nhc3QoInpvbmUiIGFzIHZhcmNoYXIoMTAwKSkgYXMgem9uZUlEJywKICAgICdjYXN0KHpvbmUgYXMgdmFyY2hhcigxMDApKSBhcyB6b25lSUQnLAogICAgJ2Nhc3Qoem9uZSkgYXMgdmFyY2hhcigxMDApKSBhcyB6b25lSUQnCl0KZm9yIHMgaW4gc3RyaW5nczoKICAgIG0gPSByZS5zZWFyY2gocGF0dGVybiwgcykKICAgIGlmIG06CiAgICAgICAgcHJpbnQoZiJ7bS5ncm91cCgyKX0gLS0tPiB7c30iKQ==