import re
RE_LABEL1 = r'[cvx]\d+(?![.]r)'
RE_LABEL2 = r'v\d+\.r\d+'
RE_LABEL = r'%s|%s' % (RE_LABEL1, RE_LABEL2)
RE_LIT = r'\!?%s),?\s*' % RE_LABEL
RE_VEC = r'(?:(?:%s)+' % RE_LIT
test = '[v3,v4,v5.r1,!v6,v7,x8,v9,v10], [v1, v2]'
print RE_VEC # it is bad
print re.findall(RE_VEC, test)
print re.findall(r'(?:(?:\!?[cvx]\d+(?![.]r)|v\d+\.r\d+),?\s*)+', test)
aW1wb3J0IHJlClJFX0xBQkVMMSA9IHInW2N2eF1cZCsoPyFbLl1yKScKUkVfTEFCRUwyID0gcid2XGQrXC5yXGQrJwpSRV9MQUJFTCA9IHInJXN8JXMnICUgKFJFX0xBQkVMMSwgUkVfTEFCRUwyKQpSRV9MSVQgPSByJ1whPyVzKSw/XHMqJyAlIFJFX0xBQkVMClJFX1ZFQyA9IHInKD86KD86JXMpKycgJSBSRV9MSVQKdGVzdCA9ICdbdjMsdjQsdjUucjEsIXY2LHY3LHg4LHY5LHYxMF0sIFt2MSwgdjJdJwpwcmludCBSRV9WRUMgIyBpdCBpcyBiYWQKcHJpbnQgcmUuZmluZGFsbChSRV9WRUMsIHRlc3QpCnByaW50IHJlLmZpbmRhbGwocicoPzooPzpcIT9bY3Z4XVxkKyg/IVsuXXIpfHZcZCtcLnJcZCspLD9ccyopKycsIHRlc3Qp
(?:(?:\!?[cvx]\d+(?![.]r)|v\d+\.r\d+),?\s*)+
['v3,v4,v5.r1,!v6,v7,x8,v9,v10', 'v1, v2']
['v3,v4,v5.r1,!v6,v7,x8,v9,v10', 'v1, v2']