If I understand you, and the lines look like your sample does, it's not too bad. Essentially you want to capture everything in between [ and ] and leave the time stuff in the order it's found. This works using Perl:
my $line = "Log Created: [12/Dec/2008:06:35:15 -0800] by MyScript on 'ubuntu 8.04
LTS' - - Details: 1/2/3";
$line =~ m/\[(.+)\]/;
my $stime = $1;
If you have multiple instances of [stuff] on any given line or stretching across lines, things get uglier. The parentheses () put the captured items into numbered scalars ($1, $2, etc.) for use later. Depending on how reliable your output is, it probably pays to check for the existence of $1 before you try to use it.
my $stime = $1 if $1;