my $tree = '[0,[[505,[[500,[[1],[2]]],[504,[[3],[503,[[501,[[4],[5]]],[502,[[6 499],[507,[[7],[8]]]]]]]]]]],[9]]]'; my @terminal_ids = ($tree =~ m/[^\d]([1-4]?[0-9]{1,2}\d)[^\d]/g);