anchor.diff:  		 "expires=123456    ;host =1.2.3.4   ;   domain=www.com;"
   		 "    ipv6=[1:2:3:4:5:6:7:8]"]),
   
  -    %% test multi line Contact and DisplayName using token rule
  +    %% test strange Contact and DisplayName using token rule
       io:format("test: parse/1 - 11~n"),
       P11 = [#contact{display_name = "Watson-.!%*_+`'~",
   		    urlstr = "sip:watson@worcester.bell-telephone.com",
  
positive.code: %% *(R)   = 0*inifinity(R) i.e. rule R may be applied any number of
  %%          times
  %% [R]    = *1(R), i.e. apply this rule 0-1 times
  %% "string" = quoted strings are case insensetive
  %% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  
  %% RFC 2234 and RFC 3261 - - - - - - - - - - - - - - - - - - - - - - -
  
negative.code: 
      ParamName = httpd_util:to_lower(NameStripped),
  
      case ParamName of
  	"expires" ->
  	    %% check that delta-seconds is an integer
  	    try list_to_integer(ValueStripped) of
  		_ -> {NameStripped, ValueStripped}
  	    catch
  		_: _ ->
  		    throw({error, {malformed_expires, ValueStripped}})
  	    end;
  	"q" ->
  	    %% this conversion is done to ensure that the q value
  	    %% can be converted with list_to_float/1 ("0", "1",
  	    %% "0." and "1." will result in exceptions)
  	    QVal = q_value(ValueStripped),
  	    {NameStripped, QVal};
  	_OtherParam ->
  	    case sipparse_util:is_token(NameStripped)
  		andalso
  		(sipparse_util:is_token(ValueStripped)
  		 orelse is_quoted(ValueStripped)
  		 %% addr-spec is a valid contact-param according to the BNF
  		 orelse is_addr_spec(ValueStripped)
  		) of
  		true ->
  		    {NameStripped, ValueStripped};
  		false ->
  		    throw({error, {invalid_contact_param, ParamStr}})
  	    end
      end.
  
  %% Descrip.: Check if In is either a hostname, an IPv4 or an IPv6 address
  %% Returns : true | false
  is_addr_spec(In) ->
      try begin
  	    sipparse_util:is_hostname(In) orelse
  		sipparse_util:is_IPv4address(In) orelse
  		sipparse_util:is_IPv6reference(In) orelse
  		is_addr_spec2(In)
  	end
      catch
  	_ : _ ->
  	    false
      end.
  
  %% part of is_addr_spec/1 - check if In is "[v6-reference]"
  is_addr_spec2(In) ->
      case In of
  	[91 | Rest] ->	%% 91 is "["
  	    case catch string:tokens(Rest, "]") of
  		[Check] ->
  		    sipparse_util:is_IPv6reference(Check);
  		_ ->
  		    false
  	    end;
  	_ ->
  	    false
      end.
  
  %% return: string() (of "x.xxx" format, that can be turned into a float() with list_to_float/1) |
  