anchor.diff:      Match = ";;",
       %% string:tokens in is_uri_parameters/1 below will consume several ";"
       %% in sucession and consider it as one separator, as sequences like
  -    %% ";;" are ilegal, this is checked for hear instead
  +    %% ";;" are illegal, this is checked for here instead
       case regexp:first_match(Parameters, Match) of
   	{match, _, _} -> false;
   	_ ->
  
positive.code: parse([C1, C2, C3, C4 | RURL] = URLStr) ->
      case httpd_util:to_lower([C1,C2,C3,C4]) of
  	"sip:" ->
  	    case catch parse_url(RURL, URLStr) of
  		SipUrl when is_record(SipUrl, sipurl) -> SipUrl;
  		_Error ->
  		    {unparseable, URLStr}
  
negative.code: is_mark($*) -> true;
  is_mark($') -> true;
  is_mark($() -> true;
  is_mark($)) -> true;
  is_mark(_) -> false.
  
  is_unreserved(Char) ->
      sipparse_util:is_alphanum(Char) or is_mark(Char).
  
  is_param_unreserved($[) -> true;
  is_param_unreserved($]) -> true;
  is_param_unreserved($/) -> true;
  is_param_unreserved($:) -> true;
  is_param_unreserved($&) -> true;
  