Ho questo codice in Mathematica che recupera il lato destro o sinistro di un'equazione trasformandolo in testo puro e poi liberando l'altro lato del testo tramite regex. Ho isolato il modello difettoso e non riesco a capire perché stia producendo un backtracking "infinito":
(\S+\s*)+(==|>=|<=|>|<)\s*
testo di esempio:
x <= func[abcde,1]
Ho quasi pensato che fosse a causa delle parentesi che descrivevano alcuni set di caratteri strani e indesiderati, ma qualsiasi carattere sostituivo con le parentesi:
x <= func:abcde,1:
Ritorna ancora all'infinito. L'unica via d'uscita è se "abcde" viene abbreviato in soli 4 caratteri "bcde", "abcd", "cbde" ...
Non capisco. Cos'altro è tornare indietro? <=
corrisponde e praticamente risolve tutto a quel punto ...