I'm the author of Bio::Phylo. First of all: thanks for your interest. Just now I uploaded a new version release candidate, v.016RC1. There are still some goofs in the documentation, which means that the pod_coverage test won't pass, but in terms of the code it's all ready for release, so please try it out!
Now, on to your question. Parsing a well formed newick string is fairly hairy business. The one you provide is doable, but the official specification notes that a single-quoted taxon name like 'my species (and something tricky [with comments] between parentheses)' would be legal too, which can easily throw off naive implementations - as I've had to learn.
The newick parser (Bio::Phylo::Parsers::Newick) in Bio::Phylo handles these cases. However, what you get out of it is something more abstract than what it looks like you want - namely, it'll return a tree object, comprised of node objects which you can traverse to ask questions such as "what's the parent of node X?", "what's the balance of this tree?" etc. In other words, stuff to do with the abstract notion of a tree shape, not the specifics of the string you provided. Perhaps, though, that's what you really want? Are you actually trying to identify clades, for example?
Below is an example to show what sort of things you'll be able to do using Bio::Phylo: