anchor.diff:              // `find -exec` semantics: stop processing after a ';' or '+' argument
               if (";".equals(arg) || "+".equals(arg)) {
                   break;
  +            }
  +        }
  +    }
  +}
  +----
  +
  +.Kotlin
  +[source,kotlin,role="secondary"]
  +----
  +@Command(name = "find")
  +class Find {
  +    @Option(names = ["-exec"], parameterConsumer = ExecParameterConsumer::class)
  +    var list: List<String> = ArrayList()
  +}
  +
  +class ExecParameterConsumer : IParameterConsumer {
  +    override fun consumeParameters(args: Stack<String>, argSpec: ArgSpec, commandSpec: CommandSpec) {
  +        val list = argSpec.getValue<MutableList<String>>()
  +        while (!args.isEmpty()) {
  +            val arg = args.pop()
  +            list.add(arg)
  +
  +            // `find -exec` semantics: stop processing after a ';' or '+' argument
  +            if (";".equals(arg) || "+".equals(arg)) {
  +                break
               }
           }
       }
  
positive.code: Since picocli 4.4, the parser will no longer assign values that match an option name to options that take a parameter, unless the value is in quotes.
  For example:
  
  [source,java]
  ----
  class App {
      @Option(names = "-x") String x;
  
negative.code: 
  For example:
  
  .Java
  [source,java,role="primary"]
  ----
  class AbbreviationsAndPosix {
      @Option(names = "-A")      boolean a;
      @Option(names = "-B")      boolean b;
      @Option(names = "-AaaBbb") boolean aaaBbb;
  }
  
  AbbreviationsAndPosix app = new AbbreviationsAndPosix();
  new CommandLine(app).setAbbreviatedOptionsAllowed(true).parseArgs("-AB");
  assert app.aaaBbb == true; // the long option is matched from abbreviated input -AB
  assert app.a == false;
  assert app.b == false;
  ----
  
  .Kotlin
  [source,kotlin,role="secondary"]
  ----
  class AbbreviationsAndPosix {
      @Option(names = ["-A"])       var a = false
      @Option(names = ["-B"])       var b = false
      @Option(names = ["-AaaBbb"])  var aaaBbb = false
  }
  
  val app = AbbreviationsAndPosix()
  CommandLine(app).setAbbreviatedOptionsAllowed(true).parseArgs("-AB")
  assertTrue(app.aaaBbb) // the long option is matched from abbreviated input -AB
  assertFalse(app.a)
  assertFalse(app.b)
  ----
  
  When abbreviated options are enabled, user input `-AB` will match the long `-AaaBbb` option, but not the `-A` and `-B` options.
  