You make the list a choice between two rules: one for parentheses and one for square brackets. Thanks for picking up the piraping. I like it. My answer to your question:
delim_value = Group(delimitedList(string_value | int_value))("list")
list_value = Or( (Suppress("[") + delim_value + Suppress("]"),
Suppress("(") + delim_value + Suppress(")")) )
source
share