in reply to Re: String parsing
in thread String parsing

Don't you just wish that repeat counts would repeat enclosed captures? Then you could use

m[ ( ^ [^(:]+ ) (?: (?: \( ( \d+ ) \) )? : (?: .*? \( ( [^)]+ ) \) ){1,} .* )? $ ]x;
to grab repetative elements instead of having to do (or rather not do) things with built in limits, like this.
#! perl -slw use strict; while( <DATA> ) { chomp; my @bits = grep{ defined } m[ ( ^ [^(:]+ ) (?: (?: \( ( \d+ ) \) )? : (?: .*? \( ( [^)]+ ) \) (?: .*? \( ( [^)]+ ) \) (?: .*? \( ( [^)]+ ) \) (?: .*? \( ( [^)]+ ) \) )? )? )? )? .* )? $ ]x; print join'/', @bits; } =Output P:\test>junk OFF SUCCESS/abc ERROR/1/27/11:03 WARNING/1 TEST/255/this/that/the other/and this =cut __DATA__ OFF SUCCESS: (abc) ERROR(1): disk number (27) crashed at (11:03) WARNING(1): system is rebooting TEST(255): (this) (that) (the other) (and this) (but not this)

Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
Hooray!