Thank you. Nice examples. I hadn't thought about order, and in fact it's not a problem in my use case. I guess I'll have resign myself to using a loop. I was dreaming along the lines of "a[e::]=()", but no luck. Although I understand the reason why zparseopts is designed this way, I've always found it a bit cumbersome that there is no way to only get the arguments to a possibly repeated flag into an array.