anchor.diff:  import java.io.File;
   
   class Convert {
  -    @Option(names = "-patterns"); // no `type` annotation attribute needed
  -    Pattern[] patterns;           // for array fields
  -
  -    @Parameters(type = File.class)
  +    @Option(names = "-patterns", description = "the regex patterns to use");
  +    Pattern[] patterns;
  +
  +    @Parameters(description = "the files to convert")
       List<File> files;
   }
   ----
   
   [source,java]
   ----
  -String[] args = { "-patterns", "a*b", "[a-e][i-u]", "--", "file1.txt", "file2.txt" };
  +String[] args = { "-patterns", "a*b", "-patterns", "[a-e][i-u]", "file1.txt", "file2.txt" };
   Convert convert = CommandLine.populateCommand(new Convert(), args);
   
   // convert.patterns now has two Pattern objects
  
positive.code: Similarly for <<Maps>>:
  [source,java]
  ----
  @Option(names = "-fix", split = "\\|", type = {Integer.class, String.class})
  Map<Integer,String> message;
  ----
  With the above option, command line arguments like the following are interpreted as a set of key-value pairs instead of a single string:
  ----
  -fix 8=FIX.4.4|9=69|35=A|49=MBT|56=TargetCompID|34=9|52=20130625-04:05:32.682|98=0|108=30|10=052
  ----
  
  === Multiple Occurrences
  Users may also specify the same option multiple times. For example:
  ----
  -option 111 -option 222 -option 333
  ----
  Each value is appended to the array or collection.
  
  
  == Required Arguments
  
negative.code: The `-x` argument "looks like" an option but there is no `-x` option defined...
  
  One possibility is to silently accept such values as positional parameters but this is often not desirable.
  From version 1.0, picocli determines if the unmatched argument "looks like an option"
  by comparing its leading characters to the prefix characters of the known options.
  
  When the unmatched value is similar to the known options, picocli throws an `UnmatchedArgumentException`
  