You'd probably be best off writing some PL/SQL. Something along the following lines should get you fairly close:

Code:
declare 
  v_string clob := 
  '[2003/10/20 09:35:46][User_name] blah blah blah [2003/10/20 09:35:01][User_name] blah blah blah [2003/10/20 09:34:32][User_name] blah blah blah';
  v_outstring clob;
  v_substring1 varchar2(1000);
  v_substring2 varchar2(1000);  
  v_counter integer := 1;
  v_pos1     integer;
  v_pos2     integer;
begin
  loop
     v_pos1 := instr(v_string, '[', 1, v_counter);
     v_pos2 := instr(v_string, ']', 1, v_counter);
     v_substring1 := substr(v_string, v_pos1+1, v_pos2 - v_pos1-1);
     v_substring1 := date_to_unixts(to_date(v_substring1, 'YYYY/MM/DD HH24:MI:SS'));  
     v_pos1 := v_pos2 + 1;
     v_counter := v_counter + 2;
     v_pos2 := instr(v_string, '[', 1, v_counter);     
     if v_pos2 = 0 then
        v_pos2 := length(v_string)+1;
     end if;
     v_substring2 := translate(substr(v_string, v_pos1, v_pos2-v_pos1), '[]', '..')||'.';
     v_outstring := v_outstring||v_substring1||v_substring2;
     exit when v_pos2 = length(v_string)+1;
  end loop;
  dbms_output.put_line(v_outstring);
end;