protected int compareBranches() {
      String val1 = ((StringNode)left).getValue();
      String val2 = ((StringNode)right).getValue();

      int val2Len = val2.length();
      if (val2Len > 1 && val2.charAt(0) == '/' &&
          val2.charAt(val2Len - 1) == '/') {
        // Treat as a regular expression
        String expr = val2.substring(1, val2Len - 1);
        try {
          Pattern pattern = Pattern.compile(expr);
          // Regular expressions will only ever be used with EqualNode
          // so return zero for equal and non-zero for not equal
          if (pattern.matcher(val1).find()) {
            return 0;
          }
          else {
            return -1;
          }
        }
        catch (PatternSyntaxException e) {
          SsiProcessorKt.getLOG().warn("Invalid expression: " + expr, e);
          return 0;
        }
      }
      return val1.compareTo(val2);
    }
protected int compareBranches()