@Override
  public boolean matchOptionally(@Nullable PsiElement patternNode, @Nullable PsiElement matchNode) {
    if (patternNode == null) {
      return isLeftLooseMatching();
    }
    final MatchingHandler handler = matchContext.getPattern().getHandler(patternNode);
    return matchNode != null
           ? handler.match(patternNode, matchNode, matchContext) && handler.validate(matchContext, 1)
           : handler.validate(matchContext, 0);
  }
@Override
  public boolean matchOptionally(@Nullable PsiElement patternNode, @Nullable PsiElement matchNode)