import re
rx = r"(?<!\d)(\d+)\*\1(?!\d)|(\([\d+-]+\))\*\2"
texts = ["5*5", "3.14*4", "(10-4)*(10-4)"]
for text in texts:
print( [f'{x.group(1) or ""}{x.group(2) or ""}' for x in re.finditer(r'(?<!\d)(\d+)\*\1(?!\d)|(\([\d+-]+\))\*\2', text)] )
aW1wb3J0IHJlCnJ4ID0gciIoPzwhXGQpKFxkKylcKlwxKD8hXGQpfChcKFtcZCstXStcKSlcKlwyIgp0ZXh0cyA9IFsiNSo1IiwgIjMuMTQqNCIsICIoMTAtNCkqKDEwLTQpIl0KZm9yIHRleHQgaW4gdGV4dHM6CiAgcHJpbnQoIFtmJ3t4Lmdyb3VwKDEpIG9yICIifXt4Lmdyb3VwKDIpIG9yICIifScgZm9yIHggaW4gcmUuZmluZGl0ZXIocicoPzwhXGQpKFxkKylcKlwxKD8hXGQpfChcKFtcZCstXStcKSlcKlwyJywgdGV4dCldICk=