anchor.diff:    , ?_assertEqual({true, []  , [OB]}, match(optional([OA, OB]), [OB]))
     , ?_assertEqual({true, [OX], []}  , match(optional([OA, OB]), [OX]))
     , ?_assertEqual({true, []  , [AV]}, match(optional([A])     , [V]))
  -  , ?_assertEqual({true, [OX], [OB, OA]},
  +  , ?_assertEqual({true, [OX], [OA, OB]},
                     match(optional([OA, OB]), [OB, OX, OA]))
     ].
   
  
positive.code: match_argument_test_() ->
    A  = arg("V"),
    AV = arg("V", 9),
    V  = arg(undefined, 9),
    V0 = arg(undefined, 0),
    OX = opt("-x"),
    OA = opt("-a"),
    [ ?_assertEqual({true , []      , [AV]}, match(A, [AV]))
  
negative.code:   OX = opt("-x"),
    A  = arg("A"),
    AV = arg("A", 9),
    V  = arg(9),
    [ ?_assertEqual({true, []  , [OA]}, match(optional([OA])    , [OA]))
    , ?_assertEqual({true, []  , []}  , match(optional([OA])    , []))
    , ?_assertEqual({true, [OX], []}  , match(optional([OA])    , [OX]))
  