anchor.diff:          {Pcl,":]" ++ Cs1} -> re_char_class(Cs1, [{posix,Pcl}|Cc], St);
           {_,Cs1} -> parse_error({posix_cc,string_between(Cs0, Cs1)})
       end;
  -re_char_class([C1|Cs0], Cc, St) when C1 /= $] ->
  +re_char_class([C1|Cs0], Cc, St) when C1 =/= $] ->
       case re_char(C1, Cs0) of
  -        {Cf,[$-,C2|Cs1]} when C2 /= $] ->
  +        {Cf,[$-,C2|Cs1]} when C2 =/= $] ->
               case re_char(C2, Cs1) of
                   {Cl,Cs2} when Cf < Cl ->
                       re_char_class(Cs2, [{range,Cf,Cl}|Cc], St);
  
positive.code:     %% C1    C2
      %%    C3   C4
      pack_crs([{C1,C4}|Crs]);
  pack_crs([{C1,C2},{C3,C4}|Crs]) when C2 + 1 == C3 ->
      %% C1   C2
      %%        C3  C4
      pack_crs([{C1,C4}|Crs]);
  
negative.code:                   false ->
                        Options0
                end,
      V = case lists:keyfind(Key, 1, Options) of
              {Key, Filename0} when Key =:= includefile;
  				  Key =:= scannerfile ->
                  case is_filename(Filename0) of
                      no -> 
                          badarg;
                      Filename -> 
                          {ok,[{Key,Filename}]}
                  end;
              {Key, Bool} = KB when is_boolean(Bool) ->
                  {ok, [KB]};
              {Key, _} ->
                  badarg;
              false ->
                  {ok,[{Key,default_option(Key)}]}
  