Regex para analizar números de punto flotante internacional

Necesito una expresión regular para obtener valores numéricos que pueden ser

111.111,11

111,111.11

111,111

Y separe las partes enteras y decimales para poder almacenar en una base de datos con la sintaxis correcta

Lo intenté([0-9]{1,3}[,.]?)+([,.][0-9]{2})? Sin éxito ya que no detecta la segunda parte :(

El resultado debe verse como:

111.111,11 -> $1 = 111111; $2 = 11

Respuestas a la pregunta(5)

Su respuesta a la pregunta