code: public SmartBinder collect(String outName, String namePattern) {
          int index = signature().argOffsets(namePattern);
  
          assert index >= 0 : "no arguments matching " + namePattern + " found in signature " + signature();
  
          Signature newSignature = signature().collect(outName, namePattern);
  
          return new SmartBinder(this, newSignature, binder.collect(index, signature().argCount() - (newSignature.argCount() - 1), Array.newInstance(signature().argType(index), 0).getClass()));
      }
docs: Collect arguments matching namePattern into an trailing array argument
  named outName.
  
  The namePattern is a standard regular expression.
  
  @param outName     the name of the new array argument
  @param namePattern a pattern with which to match arguments for collecting
  @return a new SmartBinder with the collect applied