anchor.diff:    validate_primitive(Key, from_utf8(E), A, Callbacks);
   validate_primitive(_Key, ?MATCH_ANY, _A, _Callbacks) ->
     {pass, []};
  -validate_primitive(Key, E, A, Callbacks) when is_list(E) andalso is_list(A) ->
  +validate_primitive(Key, E, A, Callbacks) when is_list(E) ->
     TextDiffFun = proplists:get_value( text_diff
                                      , Callbacks
                                      ),
  
positive.code:           {pass, [{store_tag2param(E), A}]}
        end;
      {match, Params0} ->
        Params = lists:map( fun([?MATCH_ANY]) ->
                                ?MATCH_ANY;
                               ([Match]) ->
  
negative.code:                       , [global]
                        ),
        RE = ["^", RE3, "$"],
        case re:run(A, RE, [global, {capture, all_but_first, Type}]) of
          nomatch ->
            {not_equal, {Key, E, A, TextDiffFun(E, A)}};
          {match, [Values]} ->
  