                     else if c == " " or c == "\t" or c == "\n" or c == "\r"
                     else
                         slashQuoteReady = true
+                oldWordStarted = wordStarted
                 if quote == null
                     if "a" <= c <= "z" or "A" <= c <= "Z" or "0" <= c <= "9" or
                             c == "_" or c == "$" or c == "."

                else if c == "'" and quote == null
                    quote = "single"
                    i++
                else if c == "/" and quote == null and slashQuoteReady
                    quote = "slash"
                    i++
                else if (c == "\"" and quote == "double") or

        testArgName = "testArg_834942610148628375"
        do =>
            s = s.replace(/\([^\)]*\)/, "(#{testArgName})") # not global, only replace first "(...)"
        do =>
            positions = []
            quote = null
            slashQuoteReady = true
            wordStarted = false
            i = 0
            while i < s.length
                c = s[i]
                oldSlashQuoteReady = slashQuoteReady
                if quote == null
                    if "a" <= c <= "z" or "A" <= c <= "Z" or "0" <= c <= "9" or
                            c == "_" or c == "$" or c == ")" or c == "]"
