public int scriptEnd(String[] script, int start)
    {
        int balance = 1;
        int end = start;
        
        while(balance > 0 && end < script.length)
        {
            end++;
            
            if(Pattern.matches(startPattern(),script[end]))
            { balance++; }
            
            if(Pattern.matches(endPattern(),script[end]))
            { balance--; }
        }
        
        if(end == script.length)
        {
            throw new IndexOutOfBoundsException(
                "ERROR: \"" + startName() + "\" without \"" + endName()
            );
        }
        
        return end;
    }