Java regex - captura grupos repetidos

Estoy usando la biblioteca de expresiones regulares de Java. Quiero validar una cadena con el siguiente formato:

31,5,46,7,86(...)

La cantidad de números no se conoce. Quiero asegurarme de que haya al menos un número en esa cadena y que cada dos números estén separados por una coma. También quiero obtener los números de la cadena.

(Nota: este es solo un ejemplo simplificado, string.split no resolverá mi problema real)

Escribí la siguiente expresión regular:

({[0-9]++)((?:,[0-9]++)*+)

La parte de validación funciona. Sin embargo, cuando trato de extraer los números, obtengo 2 grupos:

Group1: 31
Group2: ,5,46,7,86

versión regex101:https://regex101.com/r/xJ5oQ6/3

¿Hay alguna manera de obtener cada número por separado? es decir, para terminar con la colección:

[31, 5, 46, 7, 86]

Gracias por adelantado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta