in reply to Re^4: greedy subexpression between two nongreedy onesin thread greedy subexpression between two nongreedy ones
s#,(?:(?:(?!,).)*(cd))?(?:(?!,).)*,#=@{[$1 // '']}=# [download]
Are there any more requirements you're not telling us?