anchor.diff:  handle_event(msg_nocommand, {#user{nick=Nick}, Chan, Tokens}) ->
   	Msg = string:join(Tokens, " "),
   	case catch parse_regex(Msg) of
  -		{ok, Find, Replace, Options} ->
  -			do_regex(Find, Replace, Options, Chan);
  +		{ok, What, Regexes} ->
  +			do_regex(What, Regexes, Chan, Nick);
   		{error, Err} ->
   			core ! {irc, {msg, {Chan, [Nick, ": ", Err]}}};
   		_ ->
  
positive.code: 					throw(end_iteration)
  			end
  		end, foo, config:get_value(temp, [?MODULE, lines, Chan], [])).
  
  remove_line(Nick, Chan, Type, Line) ->
  	config:mod_get_value(temp, [?MODULE, lines, Chan],
  
negative.code: 		end),
  	ok.
  
  parse_regex([$s,$s,$/|Rest]) -> parse_regex0(Rest, self);
  parse_regex([$s,$/|Rest]) -> parse_regex0(Rest, all);
  parse_regex(_) -> false.
  
  parse_regex0(Rest, Type) ->
  	case split_regex(Rest) of
  		false -> false;
  		Regexes ->
  			case catch lists:map(fun
  						([Find, Replace, Options]) ->
  								{Find, Replace, opts(Options)};
  						([Find, Replace]) ->
  								{Find, Replace, []};
  						(_) -> throw({error, "Invalid regex"})
  					end, Regexes) of
  				{error, T} -> {error, T};
  				Regex2 -> {ok, Type, Regex2}
  			end
  	end.
  
  opts(Opts) ->
  	lists:map(fun
  			($g) -> global;
  			($i) -> caseless;
  			($u) -> unicode;
  			(T) -> throw({error, ["Unknown option character ",T]})
  		end, Opts).
  
  split_regex(Str) -> split_regex(Str, [], [], []).
  
  split_regex([$ |Str], [], [], R) -> split_regex(Str, [], [], R); % ignore spaces before first / in each regex
  
  split_regex([$/|Str], [], CR, R) -> split_regex(Str, [], CR, R);
  split_regex([$/|Str], CX, CR, R) -> split_regex(Str, [], [lists:reverse(CX)|CR], R);
  
  split_regex([$\\,$/|Str], CX, CR, R) -> split_regex(Str, [$/|CX], CR, R);
  split_regex([$\\,Chr|Str], CX, CR, R) -> split_regex(Str, [Chr|CX], CR, R);
  split_regex([$;|Str], CX, CR, R) when length(CR) == 2 -> split_regex(Str, [], [], [lists:reverse([lists:reverse(CX)|CR])|R]);
  split_regex([Chr|Str], CX, CR, R) -> split_regex(Str, [Chr|CX], CR, R);
  
  split_regex([], [], [], R) -> lists:reverse(R);
  split_regex([], [], CR, R) -> split_regex([], [], [], [lists:reverse(CR) | R]);
  split_regex([], CX, CR, R) -> split_regex([], [], [lists:reverse(CX)|CR], R).
  
  % KEYBOARD LAYOUTS
  
  