As you wish:
(?<!\S)(?=.)(0|([1-9](\d*|\d{0,2}(,\d{3})*)))?(\.\d*[1-9])?(?!\S)
Updated:
(?<!\S)(?=.)(0|([0-9](\d*|\d{0,2}(,\d{3})*)))?(\.\d*[0-9])?(?!\S)
=> Accept zero before and after number.
Updated:
(?<!\S)^[-+]?(?=.)(0|([0-9](\d*|\d{0,2}(,\d{3})*)))?(\.\d*[0-9])?(?!\S)
=> Allow nagative number(<0)