in reply to Variable Length Parsing
Not knowing what characters in your example are meta characters (for example, I can't find the 'snort' in the example; maybe you could give some actual ones?), I would suppose that the regex is not quite doing what you think it does. The part [\[(\d+\:\d+\:\d+)\]]* is actually equivalent to [\[(d+:)\]]*. It is a character class of "]", "[", "(", ")", "d", ":" and "+" which matches zero or more times (greedy matching). Since the next character is a digit, which is not contained in this character class, it will match 0 times; the regex will then match some more characters until (.+) will slurp up the whole rest.
Although I don't know the format, I would recommend you to change the mentioned part to (?:[\(\d+\:\d+\:\d+)\])*, which is probably more along the lines of what you intended to do.
Note that [] stands for a character class, whereas (?:) are non-capturing parens.
Hope that helped.