startrule: network_object(s) network_object: /network:(\w+)/ '=' '{' 'ip' '=' ip 'mask' '=' ip hosts_or_range(s?) '}' { print "Found network object named $item[1] ", "with IP $item[6] and MASK $item[9]\n" } hosts_or_range: host | host_range host_range: /host:\w+/ '=' '{' 'range' '=' ip '-' ip '}' host: /host:\w+/ '=' '{' 'ip' '=' ip(s) '}' ip: / \d{1,3} (?:\.\d{1,3}){3} ;? /x