Just spotted this. I have noticed you're mixing your decimal seperators between "." and ",". Would this happen in the real world?
Here's my quick go based on my parse numbers routine. Apologies for the code formatting, it's straight out of Notepad++
(defun rh:regexp ( pattern t_str n_str b1 b2 / regex result matches m_lst rtn)
(if (and (< b2 5) (/= b2 3) (< b1 8))
(progn
(setq regex (vlax-create-object "VBScript.RegExp")
m_lst nil
);_end setq
(vlax-put-property regex 'Pattern pattern)
(if (not b1) (setq b1 0))
(if (/= 0 (boole 1 b1 4)) (vlax-put-property regex 'Multiline :vlax-true)) ;if set TRUE caret and dollar will match each line
(if (/= 0 (boole 1 b1 2)) (vlax-put-property regex 'IgnoreCase :vlax-true)) ;if set TRUE will perform a case-insensitive search
(if (/= 0 (boole 1 b1 1)) (vlax-put-property regex 'Global :vlax-true)) ;if set TRUE = find all matches False = first match
;; Replace Method
(if (/= 0 (boole 1 b2 4))
(progn
(setq result (vlax-invoke-method regex 'Replace t_str n_str))
(vlax-release-object regex)
(setq rtn result)
);_end progn
);_end if
;; Test Method
(if (/= 0 (boole 1 b2 1))
(progn
(setq result (vlax-invoke-method regex 'Test t_str))
(vlax-release-object regex)
(setq rtn result)
);_end progn
);_end if
;; Returns a list of matching sub strings if any
(if (/= 0 (boole 1 b2 2))
(progn
(setq matches (vlax-invoke-method regex 'Execute t_str))
(vlax-release-object regex)
(if (> (vlax-get-property matches 'Count) 0)
(progn
(vlax-for item matches
(setq m_lst (cons (vlax-get-property item 'Value) m_lst))
);_end for
(setq rtn (reverse m_lst))
);_end progn
(setq rtn nil)
);_end if
);_end progn
);_end if
);_end progn
);_end if
);_end defun (rh:regexp)
(defun c:test ( / txt r_lst n_lst)
(setq txt "There's 1. week and 1 day till 31/12/2017, so that makes 192.3 hours and 0.5 minutes.")
(setq r_lst (rh:regexp "[^0-9\. ]+|[0-9\.]+" txt "" 3 2))
(if (listp r_lst)
(setq n_lst (mapcar '(lambda (x y) (if (> (atof x) 0) (setq x (if (vl-string-search "." x) (atof x) (atoi x))) (setq x y ))) r_lst r_lst))
)
(princ "\n\n")
(princ n_lst)
)
;;>> ("There's" 1.0 "week" "and" 1 "day" "till" 31 "/" 12 "/" 2017 "," "so" "that" "makes" 192.3 "hours" "and" 0.5 "minutes" ".")
This won't parse numbers in scientific notation i.e. 1.23456E12, and I'm not sure whether you need the spurious punctuation?