code: public CommandLine setStopAtUnmatched(boolean newValue) {
          getCommandSpec().parser().stopAtUnmatched(newValue);
          for (CommandLine command : getCommandSpec().subcommands().values()) {
              command.setStopAtUnmatched(newValue);
          }
          if (newValue) { setUnmatchedArgumentsAllowed(true); }
          return this;
      }
docs: Sets whether the parser should stop interpreting options and positional parameters as soon as it encounters an
  unmatched option. Unmatched options are arguments that look like an option but are not one of the known options, or
  positional arguments for which there is no available slots (the command has no positional parameters or their size is limited).
  The default is {@code false}.
  <p>Setting this flag to {@code true} automatically sets the {@linkplain #setUnmatchedArgumentsAllowed(boolean) unmatchedArgumentsAllowed} flag to {@code true} also.</p>
  <p>The specified setting will be registered with this {@code CommandLine} and the full hierarchy of its
  subcommands and nested sub-subcommands <em>at the moment this method is called</em>. Subcommands added
  later will have the default setting. To ensure a setting is applied to all
  subcommands, call the setter last, after adding subcommands.</p>
  @param newValue {@code true} when an unmatched option should result in the remaining command line arguments to be added to the
  {@linkplain #getUnmatchedArguments() unmatchedArguments list}
  @return this {@code CommandLine} object, to allow method chaining
  @since 2.3