const regex = /^
(?=[-+]?(?:0\B)*+(\d*?)((?:(?=\d+(?:\.\d+)?\ [-+]?(?:0\B)*+(\d*?)(\d(?(4)\4))(?:\.\d+)?\ [-+]?(?:0\B)*+(\d*?)(\d(?(6)\6))(?:\.\d+)?$)\d)++)\b)
(?:
(?=-\S*\ -\S*\ -|(?!.*-))
[-+]?(?:0\B)*+
(?=
(?(?!\1\.?(?!(?!(?&a))))
(?=\S+\ \S+\ [-+]?0*\1\3\6(?:\.\d+)?$)
|
(?(?!.*+\3)\S+\ [-+]?(?:0\B)*)
(?=\d*?(\2|\4)\b(.*?\ [-+]?(?:0\B)*)\S+$)
(?(?=9*\7\b)
(?:9(?=\d*?\8[1](\g{-1}?+0)))*?
\7\8[1]\g{-1}?+\6\b
|
(?:(\d)(?=\d*\8(\g{-1}?+\g{-2})))*+
(?=\d(\d*\8\g{-2}?+))
(?=0\g{-1}1|1\g{-1}2|2\g{-1}3|3\g{-1}4|4\g{-1}5|5\g{-1}6|6\g{-1}7|7\g{-1}8|8\g{-1}9)
\d
(?:9(?=\d*\8\g{-2}?+\d(\g{-1}?+0)))*?
\7\8\g{-3}?+\d\g{-1}?+\6\b
)
)
)
\1
(?:
(?=\.?(\d)\S*\ [-+]?(?:0\B)*+\3((\g{-2}?+\.?)\d)\S*\ [-+]?(?:0\B)*+\5((\g{-2}?+\.?)\d))
\.?
(?(?=(?!
\14\.?
(?<a>
(?:
(?=\d\.?\d(?<b>\S*?\ [-+]?(?:0\B)*\3\15?+)((\g{-2}?+\.?)\d))
(?=\d(\S*?\g{-4}\g{-2}))
(?=0\g{-1}9|1\g{-1}8|2\g{-1}7|3\g{-1}6|4\g{-1}5|5\g{-1}4|6\g{-1}3|7\g{-1}2|8\g{-1}1|9\g{-1}0)
\d\.?(?=\S*?(\g{-5}\g{-4}))
)*+
(?=\d(\g{-2}\.?|(?&b)\.?))
(?=[5-9]\g{-1}[5-9]|1\g{-1}9|2\g{-1}[89]|3\g{-1}[7-9]|4\g{-1}[6-9]|6\g{-1}4|7\g{-1}[34]|8\g{-1}[2-4]|9\g{-1}[1-4])
){0}
(?&a)
))
(?=\d(\S*\ [-+]?(?:0\B)*\3\16)\d(\S*\ [-+]?(?:0\B)*\5\18))
(?=
1\g{-2}(?:1\g{-1}2|2\g{-1}3|3\g{-1}4|4\g{-1}5|5\g{-1}6|6\g{-1}7|7\g{-1}8|8\g{-1}9|9\g{-1}0)
|2\g{-2}(?:1\g{-1}3|2\g{-1}4|3\g{-1}5|4\g{-1}6|5\g{-1}7|6\g{-1}8|7\g{-1}9|8\g{-1}0|9\g{-1}1)
|3\g{-2}(?:1\g{-1}4|2\g{-1}5|3\g{-1}6|4\g{-1}7|5\g{-1}8|6\g{-1}9|7\g{-1}0|8\g{-1}1|9\g{-1}2)
|4\g{-2}(?:1\g{-1}5|2\g{-1}6|3\g{-1}7|4\g{-1}8|5\g{-1}9|6\g{-1}0|7\g{-1}1|8\g{-1}2|9\g{-1}3)
|5\g{-2}(?:1\g{-1}6|2\g{-1}7|3\g{-1}8|4\g{-1}9|5\g{-1}0|6\g{-1}1|7\g{-1}2|8\g{-1}3|9\g{-1}4)
|6\g{-2}(?:1\g{-1}7|2\g{-1}8|3\g{-1}9|4\g{-1}0|5\g{-1}1|6\g{-1}2|7\g{-1}3|8\g{-1}4|9\g{-1}5)
|7\g{-2}(?:1\g{-1}8|2\g{-1}9|3\g{-1}0|4\g{-1}1|5\g{-1}2|6\g{-1}3|7\g{-1}4|8\g{-1}5|9\g{-1}6)
|8\g{-2}(?:1\g{-1}9|2\g{-1}0|3\g{-1}1|4\g{-1}2|5\g{-1}3|6\g{-1}4|7\g{-1}5|8\g{-1}6|9\g{-1}7)
|9\g{-2}(?:1\g{-1}0|2\g{-1}1|3\g{-1}2|4\g{-1}3|5\g{-1}4|6\g{-1}5|7\g{-1}6|8\g{-1}7|9\g{-1}8)
|0\g{-2}(\d)\g{-2}\g{-1}
|(\d)\g{-4}0\g{-3}\g{-1}
)
|
(?=\d((?-5))\d((?-5)))
(?=
1\g{-2}(?:0\g{-1}2|1\g{-1}3|2\g{-1}4|3\g{-1}5|4\g{-1}6|5\g{-1}7|6\g{-1}8|7\g{-1}9|8\g{-1}0|9\g{-1}1)
|2\g{-2}(?:0\g{-1}3|1\g{-1}4|2\g{-1}5|3\g{-1}6|4\g{-1}7|5\g{-1}8|6\g{-1}9|7\g{-1}0|8\g{-1}1|9\g{-1}2)
|3\g{-2}(?:0\g{-1}4|1\g{-1}5|2\g{-1}6|3\g{-1}7|4\g{-1}8|5\g{-1}9|6\g{-1}0|7\g{-1}1|8\g{-1}2|9\g{-1}3)
|4\g{-2}(?:0\g{-1}5|1\g{-1}6|2\g{-1}7|3\g{-1}8|4\g{-1}9|5\g{-1}0|6\g{-1}1|7\g{-1}2|8\g{-1}3|9\g{-1}4)
|5\g{-2}(?:0\g{-1}6|1\g{-1}7|2\g{-1}8|3\g{-1}9|4\g{-1}0|5\g{-1}1|6\g{-1}2|7\g{-1}3|8\g{-1}4|9\g{-1}5)
|6\g{-2}(?:0\g{-1}7|1\g{-1}8|2\g{-1}9|3\g{-1}0|4\g{-1}1|5\g{-1}2|6\g{-1}3|7\g{-1}4|8\g{-1}5|9\g{-1}6)
|7\g{-2}(?:0\g{-1}8|1\g{-1}9|2\g{-1}0|3\g{-1}1|4\g{-1}2|5\g{-1}3|6\g{-1}4|7\g{-1}5|8\g{-1}6|9\g{-1}7)
|8\g{-2}(?:0\g{-1}9|1\g{-1}0|2\g{-1}1|3\g{-1}2|4\g{-1}3|5\g{-1}4|6\g{-1}5|7\g{-1}6|8\g{-1}7|9\g{-1}8)
|9\g{-2}(?:0\g{-1}0|1\g{-1}1|2\g{-1}2|3\g{-1}3|4\g{-1}4|5\g{-1}5|6\g{-1}6|7\g{-1}7|8\g{-1}8|9\g{-1}9)
|0\g{-2}(?:0\g{-1}1|1\g{-1}2|2\g{-1}3|3\g{-1}4|4\g{-1}5|5\g{-1}6|6\g{-1}7|7\g{-1}8|8\g{-1}9|9\g{-1}0)
)
)
\d
)++
(?:
(?:\.0+)?0*\ [-+]?0*\3\15(?:\.0+)?0*\ [-+]?0*\5\17(?:\.0+)?0*$
|
\ [-+]?0*\3\15(\.?\d*?)0*\ [-+]?0*\5\17\g{-1}(?:\.0+)?0*$
|
(\.?\d*?)0*\ [-+]?0*\3\15\ [-+]?0*\5\17\g{-1}(?:\.0+)?0*$
|
\.?
(?:
(?=\d\d((?&b))((\g{-2}?+\.?)\d))
(?=\d(\S*?\g{-4}\g{-2}))
(?=0\g{-1}9|1\g{-1}8|2\g{-1}7|3\g{-1}6|4\g{-1}5|5\g{-1}4|6\g{-1}3|7\g{-1}2|8\g{-1}1|9\g{-1}0)
\d
(?=\S*?(\g{-5}(\g{-5})))
)*+
(?=\d(\g{-3}|(?&b)\.?))
(?=1\g{-1}9|2\g{-1}8|3\g{-1}7|4\g{-1}6|5\g{-1}5|6\g{-1}4|7\g{-1}3|8\g{-1}2|9\g{-1}1)
\d0*\ [-+]?0*\3\15\g{-2}?+\.?\d0*\ [-+]?0*\5\17\.?0*$
)
|
(?=-(?!.*-)|[^-]\S*\ -\S*\ -)
[-+]?(?:0\B)*+
(?=
(?(?!\1\.?(?!(?!(?&c))))
(?=\S+\ [-+]?0*\1\5\4\b)
|
(?|
(?!.++\5)
\S+\ [-+]?(?:0\B)*+(?=\S*(\ [-+]?(?:0\B)*+)())
(?(?=\S*\41[9]*\6\b)
1(?:0(?=\S*\41(\g{-1}?+9)))*?
\4\b\S*\41\g{-1}?+\6\b
|
(?:(\d)(?=\S*\41(\g{-1}?+\g{-2})))*+
(?=\d(\S*\41\g{-2}?+))(?=1\g{-1}0|2\g{-1}1|3\g{-1}2|4\g{-1}3|5\g{-1}4|6\g{-1}5|7\g{-1}6|8\g{-1}7|9\g{-1}8)
\d
(?:0(?=\S*\41\g{-2}?+\d(\g{-1}?+9)))*?
\4\b\S*\41\g{-3}?+\d\g{-1}?+\6\b
)
|
(?=.*+\5)
(?=\d*?(\2)\b(\S*\ [-+]?(?:0\B)*+))
(?(?=9*\41\b)
(?:9(?=\d*?\42[1](\g{-1}?+0)))*?
\41\42[1]\g{-1}?+\4\b
|
(?:(\d)(?=\d*\42(\g{-1}?+\g{-2})))*+
(?=\d(\d*\42\g{-2}?+))
(?=0\g{-1}1|1\g{-1}2|2\g{-1}3|3\g{-1}4|4\g{-1}5|5\g{-1}6|6\g{-1}7|7\g{-1}8|8\g{-1}9)
\d
(?:9(?=\S*\42\g{-2}?+\d(\g{-1}?+0)))*?
\41\42\g{-3}?+\d\g{-1}?+\4\b
)
)
)
)
\1
(?:
(?=\.?(\d)\S*\ [-+]?(?:0\B)*+\3((\g{-2}?+\.?)\d)\S*\ [-+]?(?:0\B)*+\5((\g{-2}?+\.?)\d))
\.?
(?(?=(?!
\48\.?
(?<c>
(?:
(?=\d\.?\d(?<d>\S*?\ \S+\ [-+]?(?:0\B)*\5\51?+)((\g{-2}?+\.?)\d))
(?=\d(\S*?\g{-4}\g{-2}))
(?=0\g{-1}9|1\g{-1}8|2\g{-1}7|3\g{-1}6|4\g{-1}5|5\g{-1}4|6\g{-1}3|7\g{-1}2|8\g{-1}1|9\g{-1}0)
\d\.?(?=\S*?(\g{-5}\g{-4}))
)*+
(?=\d(\g{-2}\.?|(?&d)\.?))
(?=[5-9]\g{-1}[5-9]|1\g{-1}9|2\g{-1}[89]|3\g{-1}[7-9]|4\g{-1}[6-9]|6\g{-1}4|7\g{-1}[34]|8\g{-1}[2-4]|9\g{-1}[1-4])
){0}
(?&c)
))
(?=\d(\S*\ [-+]?(?:0\B)*\3\50)\d(\S*\ [-+]?(?:0\B)*\5\52))
(?=
1\g{-2}(?:2\g{-1}1|3\g{-1}2|4\g{-1}3|5\g{-1}4|6\g{-1}5|7\g{-1}6|8\g{-1}7|9\g{-1}8|0\g{-1}9)
|2\g{-2}(?:3\g{-1}1|4\g{-1}2|5\g{-1}3|6\g{-1}4|7\g{-1}5|8\g{-1}6|9\g{-1}7|0\g{-1}8|1\g{-1}9)
|3\g{-2}(?:4\g{-1}1|5\g{-1}2|6\g{-1}3|7\g{-1}4|8\g{-1}5|9\g{-1}6|0\g{-1}7|1\g{-1}8|2\g{-1}9)
|4\g{-2}(?:5\g{-1}1|6\g{-1}2|7\g{-1}3|8\g{-1}4|9\g{-1}5|0\g{-1}6|1\g{-1}7|2\g{-1}8|3\g{-1}9)
|5\g{-2}(?:6\g{-1}1|7\g{-1}2|8\g{-1}3|9\g{-1}4|0\g{-1}5|1\g{-1}6|2\g{-1}7|3\g{-1}8|4\g{-1}9)
|6\g{-2}(?:7\g{-1}1|8\g{-1}2|9\g{-1}3|0\g{-1}4|1\g{-1}5|2\g{-1}6|3\g{-1}7|4\g{-1}8|5\g{-1}9)
|7\g{-2}(?:8\g{-1}1|9\g{-1}2|0\g{-1}3|1\g{-1}4|2\g{-1}5|3\g{-1}6|4\g{-1}7|5\g{-1}8|6\g{-1}9)
|8\g{-2}(?:9\g{-1}1|0\g{-1}2|1\g{-1}3|2\g{-1}4|3\g{-1}5|4\g{-1}6|5\g{-1}7|6\g{-1}8|7\g{-1}9)
|9\g{-2}(?:0\g{-1}1|1\g{-1}2|2\g{-1}3|3\g{-1}4|4\g{-1}5|5\g{-1}6|6\g{-1}7|7\g{-1}8|8\g{-1}9)
|0\g{-2}(\d)\g{-2}\g{-1}
|(\d)\g{-4}\g{-1}\g{-3}0
)
|
(?=\d((?-5))\d((?-5)))
(?=
1\g{-2}(?:2\g{-1}0|3\g{-1}1|4\g{-1}2|5\g{-1}3|6\g{-1}4|7\g{-1}5|8\g{-1}6|9\g{-1}7|0\g{-1}8|1\g{-1}9)
|2\g{-2}(?:3\g{-1}0|4\g{-1}1|5\g{-1}2|6\g{-1}3|7\g{-1}4|8\g{-1}5|9\g{-1}6|0\g{-1}7|1\g{-1}8|2\g{-1}9)
|3\g{-2}(?:4\g{-1}0|5\g{-1}1|6\g{-1}2|7\g{-1}3|8\g{-1}4|9\g{-1}5|0\g{-1}6|1\g{-1}7|2\g{-1}8|3\g{-1}9)
|4\g{-2}(?:5\g{-1}0|6\g{-1}1|7\g{-1}2|8\g{-1}3|9\g{-1}4|0\g{-1}5|1\g{-1}6|2\g{-1}7|3\g{-1}8|4\g{-1}9)
|5\g{-2}(?:6\g{-1}0|7\g{-1}1|8\g{-1}2|9\g{-1}3|0\g{-1}4|1\g{-1}5|2\g{-1}6|3\g{-1}7|4\g{-1}8|5\g{-1}9)
|6\g{-2}(?:7\g{-1}0|8\g{-1}1|9\g{-1}2|0\g{-1}3|1\g{-1}4|2\g{-1}5|3\g{-1}6|4\g{-1}7|5\g{-1}8|6\g{-1}9)
|7\g{-2}(?:8\g{-1}0|9\g{-1}1|0\g{-1}2|1\g{-1}3|2\g{-1}4|3\g{-1}5|4\g{-1}6|5\g{-1}7|6\g{-1}8|7\g{-1}9)
|8\g{-2}(?:9\g{-1}0|0\g{-1}1|1\g{-1}2|2\g{-1}3|3\g{-1}4|4\g{-1}5|5\g{-1}6|6\g{-1}7|7\g{-1}8|8\g{-1}9)
|9\g{-2}(?:0\g{-1}0|1\g{-1}1|2\g{-1}2|3\g{-1}3|4\g{-1}4|5\g{-1}5|6\g{-1}6|7\g{-1}7|8\g{-1}8|9\g{-1}9)
|0\g{-2}(?:1\g{-1}0|2\g{-1}1|3\g{-1}2|4\g{-1}3|5\g{-1}4|6\g{-1}5|7\g{-1}6|8\g{-1}7|9\g{-1}8|0\g{-1}9)
)
)
\d
)++
(?:
(?:\.0+)?0*\ [-+]?0*\3\49(?:\.0+)?0*\ [-+]?0*\5\51(?:\.0+)?0*$
|
\ [-+]?0*\3\49(\.?\d*?)0*\ [-+]?0*\5\51\g{-1}(?:\.0+)?0*$
|
(\.?\d*?)0*\ [-+]?0*\3\49\g{-1}(?:\.0+)?0*\ [-+]?0*\5\51$
|
\.?
(?:
(?=\d\d((?&d))((\g{-2}?+\.?)\d))
(?=\d(\S*?\g{-4}\g{-2}))
(?=0\g{-1}9|1\g{-1}8|2\g{-1}7|3\g{-1}6|4\g{-1}5|5\g{-1}4|6\g{-1}3|7\g{-1}2|8\g{-1}1|9\g{-1}0)
\d
(?=\S*?(\g{-5}(\g{-5})))
)*+
(?=\d(\g{-3}|(?&d)\.?))
(?=1\g{-1}9|2\g{-1}8|3\g{-1}7|4\g{-1}6|5\g{-1}5|6\g{-1}4|7\g{-1}3|8\g{-1}2|9\g{-1}1)
\d0*\ [-+]?0*\3\49\.?0*\ [-+]?0*\5\51\g{-2}?+\.?\d0*$
)
|
(?=[^-]\S*\ -\S*\ [^-]\S*|-\S*\ [^-]\S*\ -)
[-+]?(?:0\B)*+
(?=
(?(?!\S+\ [-+]?(?:0\B)*+\3\.?(?!(?!(?&e))))
(?=\3\5\2\b)
|
(?=\d*(\S*\ (?(?=.*+\3)\S+\ )[-+]?(?:0\B)*+)\d*?(\4|\6)\b)
(?(?=10*\2\b)
1(?:0(?=\d*\75(\g{-1}?+9)))*?
\2\b\75\g{-1}?+\76\b
|
(?:(\d)(?=\d*\75(\g{-1}?+\g{-2})))*+
(?=\d(\d*\75\g{-2}?+))
(?=1\g{-1}0|2\g{-1}1|3\g{-1}2|4\g{-1}3|5\g{-1}4|6\g{-1}5|7\g{-1}6|8\g{-1}7|9\g{-1}8)
\d
(?:0(?=\d*\75\g{-2}?+\d(\g{-1}?+9)))*?
\2\b\75\g{-3}?+\d\g{-1}?+\76\b
)
)
)
\1
(?:
(?=\.?(\d)\S*\ [-+]?(?:0\B)*+\3((\g{-2}?+\.?)\d)\S*\ [-+]?(?:0\B)*+\5((\g{-2}?+\.?)\d))
\.?
(?(?=(?!
\S*\ [-+]?(?:0\B)*+\3\83\.?
(?<e>
(?:
(?=\d\.?\d(?<f>\S*?\ [-+]?(?:0\B)*\5\85?+)((\g{-2}?+\.?)\d))
(?=\d(\S*?\g{-4}\g{-2}))
(?=0\g{-1}9|1\g{-1}8|2\g{-1}7|3\g{-1}6|4\g{-1}5|5\g{-1}4|6\g{-1}3|7\g{-1}2|8\g{-1}1|9\g{-1}0)
\d\.?
(?=\S*?(\g{-5}\g{-4}))
)*+
(?=\d(\g{-2}\.?|(?&f)\.?))
(?=[5-9]\g{-1}[5-9]|1\g{-1}9|2\g{-1}[89]|3\g{-1}[7-9]|4\g{-1}[6-9]|6\g{-1}4|7\g{-1}[34]|8\g{-1}[2-4]|9\g{-1}[1-4])
){0}
(?&e)
))
(?=\d(\S*\ [-+]?(?:0\B)*\3\84)\d(\S*\ [-+]?(?:0\B)*\5\86))
(?=
(?:2\g{-2}1|3\g{-2}2|4\g{-2}3|5\g{-2}4|6\g{-2}5|7\g{-2}6|8\g{-2}7|9\g{-2}8|0\g{-2}9)\g{-1}1
|(?:3\g{-2}1|4\g{-2}2|5\g{-2}3|6\g{-2}4|7\g{-2}5|8\g{-2}6|9\g{-2}7|0\g{-2}8|1\g{-2}9)\g{-1}2
|(?:4\g{-2}1|5\g{-2}2|6\g{-2}3|7\g{-2}4|8\g{-2}5|9\g{-2}6|0\g{-2}7|1\g{-2}8|2\g{-2}9)\g{-1}3
|(?:5\g{-2}1|6\g{-2}2|7\g{-2}3|8\g{-2}4|9\g{-2}5|0\g{-2}6|1\g{-2}7|2\g{-2}8|3\g{-2}9)\g{-1}4
|(?:6\g{-2}1|7\g{-2}2|8\g{-2}3|9\g{-2}4|0\g{-2}5|1\g{-2}6|2\g{-2}7|3\g{-2}8|4\g{-2}9)\g{-1}5
|(?:7\g{-2}1|8\g{-2}2|9\g{-2}3|0\g{-2}4|1\g{-2}5|2\g{-2}6|3\g{-2}7|4\g{-2}8|5\g{-2}9)\g{-1}6
|(?:8\g{-2}1|9\g{-2}2|0\g{-2}3|1\g{-2}4|2\g{-2}5|3\g{-2}6|4\g{-2}7|5\g{-2}8|6\g{-2}9)\g{-1}7
|(?:9\g{-2}1|0\g{-2}2|1\g{-2}3|2\g{-2}4|3\g{-2}5|4\g{-2}6|5\g{-2}7|6\g{-2}8|7\g{-2}9)\g{-1}8
|(?:0\g{-2}1|1\g{-2}2|2\g{-2}3|3\g{-2}4|4\g{-2}5|5\g{-2}6|6\g{-2}7|7\g{-2}8|8\g{-2}9)\g{-1}9
|(\d)\g{-3}0\g{-2}\g{-1}
|(\d)\g{-4}\g{-1}\g{-3}0
)
|
(?=\d((?-5))\d((?-5)))
(?=
(?:2\g{-2}0|3\g{-2}1|4\g{-2}2|5\g{-2}3|6\g{-2}4|7\g{-2}5|8\g{-2}6|9\g{-2}7|0\g{-2}8|1\g{-2}9)\g{-1}1
|(?:3\g{-2}0|4\g{-2}1|5\g{-2}2|6\g{-2}3|7\g{-2}4|8\g{-2}5|9\g{-2}6|0\g{-2}7|1\g{-2}8|2\g{-2}9)\g{-1}2
|(?:4\g{-2}0|5\g{-2}1|6\g{-2}2|7\g{-2}3|8\g{-2}4|9\g{-2}5|0\g{-2}6|1\g{-2}7|2\g{-2}8|3\g{-2}9)\g{-1}3
|(?:5\g{-2}0|6\g{-2}1|7\g{-2}2|8\g{-2}3|9\g{-2}4|0\g{-2}5|1\g{-2}6|2\g{-2}7|3\g{-2}8|4\g{-2}9)\g{-1}4
|(?:6\g{-2}0|7\g{-2}1|8\g{-2}2|9\g{-2}3|0\g{-2}4|1\g{-2}5|2\g{-2}6|3\g{-2}7|4\g{-2}8|5\g{-2}9)\g{-1}5
|(?:7\g{-2}0|8\g{-2}1|9\g{-2}2|0\g{-2}3|1\g{-2}4|2\g{-2}5|3\g{-2}6|4\g{-2}7|5\g{-2}8|6\g{-2}9)\g{-1}6
|(?:8\g{-2}0|9\g{-2}1|0\g{-2}2|1\g{-2}3|2\g{-2}4|3\g{-2}5|4\g{-2}6|5\g{-2}7|6\g{-2}8|7\g{-2}9)\g{-1}7
|(?:9\g{-2}0|0\g{-2}1|1\g{-2}2|2\g{-2}3|3\g{-2}4|4\g{-2}5|5\g{-2}6|6\g{-2}7|7\g{-2}8|8\g{-2}9)\g{-1}8
|(?:0\g{-2}0|1\g{-2}1|2\g{-2}2|3\g{-2}3|4\g{-2}4|5\g{-2}5|6\g{-2}6|7\g{-2}7|8\g{-2}8|9\g{-2}9)\g{-1}9
|(?:1\g{-2}0|2\g{-2}1|3\g{-2}2|4\g{-2}3|5\g{-2}4|6\g{-2}5|7\g{-2}6|8\g{-2}7|9\g{-2}8|0\g{-2}9)\g{-1}0
)
)
\d
)++
(?:
(?:\.0+)?0*\ [-+]?0*\3\83(?:\.0+)?0*\ [-+]?0*\5\85(?:\.0+)?0*$
|
(\.?\d*?)0*\ [-+]?0*\3\83\g{-1}(?:\.0+)?0*\ [-+]?0*\5\85$
|
(\.?\d*?)0*\ [-+]?0*\3\83\ [-+]?0*\5\85\g{-1}(?:\.0+)?0*$
|
\.?0*\ [-+]?(?:0\B)*+\3\83\.?
(?:
(?=\d\d((?&f))((\g{-2}?+\.?)\d))
(?=\d(\S*?\g{-4}\g{-2}))
(?=0\g{-1}9|1\g{-1}8|2\g{-1}7|3\g{-1}6|4\g{-1}5|5\g{-1}4|6\g{-1}3|7\g{-1}2|8\g{-1}1|9\g{-1}0)
\d
(?=\S*?(\g{-5}(\g{-5})))
)*+
(?=\d(\g{-3}|(?&f)\.?))
(?=1\g{-1}9|2\g{-1}8|3\g{-1}7|4\g{-1}6|5\g{-1}5|6\g{-1}4|7\g{-1}3|8\g{-1}2|9\g{-1}1)
\d0*\ [-+]?0*\5\85\g{-2}?+\.?\d0*$
)
)/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^
(?=[-+]?(?:0\\B)*+(\\d*?)((?:(?=\\d+(?:\\.\\d+)?\\ [-+]?(?:0\\B)*+(\\d*?)(\\d(?(4)\\4))(?:\\.\\d+)?\\ [-+]?(?:0\\B)*+(\\d*?)(\\d(?(6)\\6))(?:\\.\\d+)?$)\\d)++)\\b)
(?:
(?=-\\S*\\ -\\S*\\ -|(?!.*-))
[-+]?(?:0\\B)*+
(?=
(?(?!\\1\\.?(?!(?!(?&a))))
(?=\\S+\\ \\S+\\ [-+]?0*\\1\\3\\6(?:\\.\\d+)?$)
|
(?(?!.*+\\3)\\S+\\ [-+]?(?:0\\B)*)
(?=\\d*?(\\2|\\4)\\b(.*?\\ [-+]?(?:0\\B)*)\\S+$)
(?(?=9*\\7\\b)
(?:9(?=\\d*?\\8[1](\\g{-1}?+0)))*?
\\7\\8[1]\\g{-1}?+\\6\\b
|
(?:(\\d)(?=\\d*\\8(\\g{-1}?+\\g{-2})))*+
(?=\\d(\\d*\\8\\g{-2}?+))
(?=0\\g{-1}1|1\\g{-1}2|2\\g{-1}3|3\\g{-1}4|4\\g{-1}5|5\\g{-1}6|6\\g{-1}7|7\\g{-1}8|8\\g{-1}9)
\\d
(?:9(?=\\d*\\8\\g{-2}?+\\d(\\g{-1}?+0)))*?
\\7\\8\\g{-3}?+\\d\\g{-1}?+\\6\\b
)
)
)
\\1
(?:
(?=\\.?(\\d)\\S*\\ [-+]?(?:0\\B)*+\\3((\\g{-2}?+\\.?)\\d)\\S*\\ [-+]?(?:0\\B)*+\\5((\\g{-2}?+\\.?)\\d))
\\.?
(?(?=(?!
\\14\\.?
(?<a>
(?:
(?=\\d\\.?\\d(?<b>\\S*?\\ [-+]?(?:0\\B)*\\3\\15?+)((\\g{-2}?+\\.?)\\d))
(?=\\d(\\S*?\\g{-4}\\g{-2}))
(?=0\\g{-1}9|1\\g{-1}8|2\\g{-1}7|3\\g{-1}6|4\\g{-1}5|5\\g{-1}4|6\\g{-1}3|7\\g{-1}2|8\\g{-1}1|9\\g{-1}0)
\\d\\.?(?=\\S*?(\\g{-5}\\g{-4}))
)*+
(?=\\d(\\g{-2}\\.?|(?&b)\\.?))
(?=[5-9]\\g{-1}[5-9]|1\\g{-1}9|2\\g{-1}[89]|3\\g{-1}[7-9]|4\\g{-1}[6-9]|6\\g{-1}4|7\\g{-1}[34]|8\\g{-1}[2-4]|9\\g{-1}[1-4])
){0}
(?&a)
))
(?=\\d(\\S*\\ [-+]?(?:0\\B)*\\3\\16)\\d(\\S*\\ [-+]?(?:0\\B)*\\5\\18))
(?=
1\\g{-2}(?:1\\g{-1}2|2\\g{-1}3|3\\g{-1}4|4\\g{-1}5|5\\g{-1}6|6\\g{-1}7|7\\g{-1}8|8\\g{-1}9|9\\g{-1}0)
|2\\g{-2}(?:1\\g{-1}3|2\\g{-1}4|3\\g{-1}5|4\\g{-1}6|5\\g{-1}7|6\\g{-1}8|7\\g{-1}9|8\\g{-1}0|9\\g{-1}1)
|3\\g{-2}(?:1\\g{-1}4|2\\g{-1}5|3\\g{-1}6|4\\g{-1}7|5\\g{-1}8|6\\g{-1}9|7\\g{-1}0|8\\g{-1}1|9\\g{-1}2)
|4\\g{-2}(?:1\\g{-1}5|2\\g{-1}6|3\\g{-1}7|4\\g{-1}8|5\\g{-1}9|6\\g{-1}0|7\\g{-1}1|8\\g{-1}2|9\\g{-1}3)
|5\\g{-2}(?:1\\g{-1}6|2\\g{-1}7|3\\g{-1}8|4\\g{-1}9|5\\g{-1}0|6\\g{-1}1|7\\g{-1}2|8\\g{-1}3|9\\g{-1}4)
|6\\g{-2}(?:1\\g{-1}7|2\\g{-1}8|3\\g{-1}9|4\\g{-1}0|5\\g{-1}1|6\\g{-1}2|7\\g{-1}3|8\\g{-1}4|9\\g{-1}5)
|7\\g{-2}(?:1\\g{-1}8|2\\g{-1}9|3\\g{-1}0|4\\g{-1}1|5\\g{-1}2|6\\g{-1}3|7\\g{-1}4|8\\g{-1}5|9\\g{-1}6)
|8\\g{-2}(?:1\\g{-1}9|2\\g{-1}0|3\\g{-1}1|4\\g{-1}2|5\\g{-1}3|6\\g{-1}4|7\\g{-1}5|8\\g{-1}6|9\\g{-1}7)
|9\\g{-2}(?:1\\g{-1}0|2\\g{-1}1|3\\g{-1}2|4\\g{-1}3|5\\g{-1}4|6\\g{-1}5|7\\g{-1}6|8\\g{-1}7|9\\g{-1}8)
|0\\g{-2}(\\d)\\g{-2}\\g{-1}
|(\\d)\\g{-4}0\\g{-3}\\g{-1}
)
|
(?=\\d((?-5))\\d((?-5)))
(?=
1\\g{-2}(?:0\\g{-1}2|1\\g{-1}3|2\\g{-1}4|3\\g{-1}5|4\\g{-1}6|5\\g{-1}7|6\\g{-1}8|7\\g{-1}9|8\\g{-1}0|9\\g{-1}1)
|2\\g{-2}(?:0\\g{-1}3|1\\g{-1}4|2\\g{-1}5|3\\g{-1}6|4\\g{-1}7|5\\g{-1}8|6\\g{-1}9|7\\g{-1}0|8\\g{-1}1|9\\g{-1}2)
|3\\g{-2}(?:0\\g{-1}4|1\\g{-1}5|2\\g{-1}6|3\\g{-1}7|4\\g{-1}8|5\\g{-1}9|6\\g{-1}0|7\\g{-1}1|8\\g{-1}2|9\\g{-1}3)
|4\\g{-2}(?:0\\g{-1}5|1\\g{-1}6|2\\g{-1}7|3\\g{-1}8|4\\g{-1}9|5\\g{-1}0|6\\g{-1}1|7\\g{-1}2|8\\g{-1}3|9\\g{-1}4)
|5\\g{-2}(?:0\\g{-1}6|1\\g{-1}7|2\\g{-1}8|3\\g{-1}9|4\\g{-1}0|5\\g{-1}1|6\\g{-1}2|7\\g{-1}3|8\\g{-1}4|9\\g{-1}5)
|6\\g{-2}(?:0\\g{-1}7|1\\g{-1}8|2\\g{-1}9|3\\g{-1}0|4\\g{-1}1|5\\g{-1}2|6\\g{-1}3|7\\g{-1}4|8\\g{-1}5|9\\g{-1}6)
|7\\g{-2}(?:0\\g{-1}8|1\\g{-1}9|2\\g{-1}0|3\\g{-1}1|4\\g{-1}2|5\\g{-1}3|6\\g{-1}4|7\\g{-1}5|8\\g{-1}6|9\\g{-1}7)
|8\\g{-2}(?:0\\g{-1}9|1\\g{-1}0|2\\g{-1}1|3\\g{-1}2|4\\g{-1}3|5\\g{-1}4|6\\g{-1}5|7\\g{-1}6|8\\g{-1}7|9\\g{-1}8)
|9\\g{-2}(?:0\\g{-1}0|1\\g{-1}1|2\\g{-1}2|3\\g{-1}3|4\\g{-1}4|5\\g{-1}5|6\\g{-1}6|7\\g{-1}7|8\\g{-1}8|9\\g{-1}9)
|0\\g{-2}(?:0\\g{-1}1|1\\g{-1}2|2\\g{-1}3|3\\g{-1}4|4\\g{-1}5|5\\g{-1}6|6\\g{-1}7|7\\g{-1}8|8\\g{-1}9|9\\g{-1}0)
)
)
\\d
)++
(?:
(?:\\.0+)?0*\\ [-+]?0*\\3\\15(?:\\.0+)?0*\\ [-+]?0*\\5\\17(?:\\.0+)?0*$
|
\\ [-+]?0*\\3\\15(\\.?\\d*?)0*\\ [-+]?0*\\5\\17\\g{-1}(?:\\.0+)?0*$
|
(\\.?\\d*?)0*\\ [-+]?0*\\3\\15\\ [-+]?0*\\5\\17\\g{-1}(?:\\.0+)?0*$
|
\\.?
(?:
(?=\\d\\d((?&b))((\\g{-2}?+\\.?)\\d))
(?=\\d(\\S*?\\g{-4}\\g{-2}))
(?=0\\g{-1}9|1\\g{-1}8|2\\g{-1}7|3\\g{-1}6|4\\g{-1}5|5\\g{-1}4|6\\g{-1}3|7\\g{-1}2|8\\g{-1}1|9\\g{-1}0)
\\d
(?=\\S*?(\\g{-5}(\\g{-5})))
)*+
(?=\\d(\\g{-3}|(?&b)\\.?))
(?=1\\g{-1}9|2\\g{-1}8|3\\g{-1}7|4\\g{-1}6|5\\g{-1}5|6\\g{-1}4|7\\g{-1}3|8\\g{-1}2|9\\g{-1}1)
\\d0*\\ [-+]?0*\\3\\15\\g{-2}?+\\.?\\d0*\\ [-+]?0*\\5\\17\\.?0*$
)
|
(?=-(?!.*-)|[^-]\\S*\\ -\\S*\\ -)
[-+]?(?:0\\B)*+
(?=
(?(?!\\1\\.?(?!(?!(?&c))))
(?=\\S+\\ [-+]?0*\\1\\5\\4\\b)
|
(?|
(?!.++\\5)
\\S+\\ [-+]?(?:0\\B)*+(?=\\S*(\\ [-+]?(?:0\\B)*+)())
(?(?=\\S*\\41[9]*\\6\\b)
1(?:0(?=\\S*\\41(\\g{-1}?+9)))*?
\\4\\b\\S*\\41\\g{-1}?+\\6\\b
|
(?:(\\d)(?=\\S*\\41(\\g{-1}?+\\g{-2})))*+
(?=\\d(\\S*\\41\\g{-2}?+))(?=1\\g{-1}0|2\\g{-1}1|3\\g{-1}2|4\\g{-1}3|5\\g{-1}4|6\\g{-1}5|7\\g{-1}6|8\\g{-1}7|9\\g{-1}8)
\\d
(?:0(?=\\S*\\41\\g{-2}?+\\d(\\g{-1}?+9)))*?
\\4\\b\\S*\\41\\g{-3}?+\\d\\g{-1}?+\\6\\b
)
|
(?=.*+\\5)
(?=\\d*?(\\2)\\b(\\S*\\ [-+]?(?:0\\B)*+))
(?(?=9*\\41\\b)
(?:9(?=\\d*?\\42[1](\\g{-1}?+0)))*?
\\41\\42[1]\\g{-1}?+\\4\\b
|
(?:(\\d)(?=\\d*\\42(\\g{-1}?+\\g{-2})))*+
(?=\\d(\\d*\\42\\g{-2}?+))
(?=0\\g{-1}1|1\\g{-1}2|2\\g{-1}3|3\\g{-1}4|4\\g{-1}5|5\\g{-1}6|6\\g{-1}7|7\\g{-1}8|8\\g{-1}9)
\\d
(?:9(?=\\S*\\42\\g{-2}?+\\d(\\g{-1}?+0)))*?
\\41\\42\\g{-3}?+\\d\\g{-1}?+\\4\\b
)
)
)
)
\\1
(?:
(?=\\.?(\\d)\\S*\\ [-+]?(?:0\\B)*+\\3((\\g{-2}?+\\.?)\\d)\\S*\\ [-+]?(?:0\\B)*+\\5((\\g{-2}?+\\.?)\\d))
\\.?
(?(?=(?!
\\48\\.?
(?<c>
(?:
(?=\\d\\.?\\d(?<d>\\S*?\\ \\S+\\ [-+]?(?:0\\B)*\\5\\51?+)((\\g{-2}?+\\.?)\\d))
(?=\\d(\\S*?\\g{-4}\\g{-2}))
(?=0\\g{-1}9|1\\g{-1}8|2\\g{-1}7|3\\g{-1}6|4\\g{-1}5|5\\g{-1}4|6\\g{-1}3|7\\g{-1}2|8\\g{-1}1|9\\g{-1}0)
\\d\\.?(?=\\S*?(\\g{-5}\\g{-4}))
)*+
(?=\\d(\\g{-2}\\.?|(?&d)\\.?))
(?=[5-9]\\g{-1}[5-9]|1\\g{-1}9|2\\g{-1}[89]|3\\g{-1}[7-9]|4\\g{-1}[6-9]|6\\g{-1}4|7\\g{-1}[34]|8\\g{-1}[2-4]|9\\g{-1}[1-4])
){0}
(?&c)
))
(?=\\d(\\S*\\ [-+]?(?:0\\B)*\\3\\50)\\d(\\S*\\ [-+]?(?:0\\B)*\\5\\52))
(?=
1\\g{-2}(?:2\\g{-1}1|3\\g{-1}2|4\\g{-1}3|5\\g{-1}4|6\\g{-1}5|7\\g{-1}6|8\\g{-1}7|9\\g{-1}8|0\\g{-1}9)
|2\\g{-2}(?:3\\g{-1}1|4\\g{-1}2|5\\g{-1}3|6\\g{-1}4|7\\g{-1}5|8\\g{-1}6|9\\g{-1}7|0\\g{-1}8|1\\g{-1}9)
|3\\g{-2}(?:4\\g{-1}1|5\\g{-1}2|6\\g{-1}3|7\\g{-1}4|8\\g{-1}5|9\\g{-1}6|0\\g{-1}7|1\\g{-1}8|2\\g{-1}9)
|4\\g{-2}(?:5\\g{-1}1|6\\g{-1}2|7\\g{-1}3|8\\g{-1}4|9\\g{-1}5|0\\g{-1}6|1\\g{-1}7|2\\g{-1}8|3\\g{-1}9)
|5\\g{-2}(?:6\\g{-1}1|7\\g{-1}2|8\\g{-1}3|9\\g{-1}4|0\\g{-1}5|1\\g{-1}6|2\\g{-1}7|3\\g{-1}8|4\\g{-1}9)
|6\\g{-2}(?:7\\g{-1}1|8\\g{-1}2|9\\g{-1}3|0\\g{-1}4|1\\g{-1}5|2\\g{-1}6|3\\g{-1}7|4\\g{-1}8|5\\g{-1}9)
|7\\g{-2}(?:8\\g{-1}1|9\\g{-1}2|0\\g{-1}3|1\\g{-1}4|2\\g{-1}5|3\\g{-1}6|4\\g{-1}7|5\\g{-1}8|6\\g{-1}9)
|8\\g{-2}(?:9\\g{-1}1|0\\g{-1}2|1\\g{-1}3|2\\g{-1}4|3\\g{-1}5|4\\g{-1}6|5\\g{-1}7|6\\g{-1}8|7\\g{-1}9)
|9\\g{-2}(?:0\\g{-1}1|1\\g{-1}2|2\\g{-1}3|3\\g{-1}4|4\\g{-1}5|5\\g{-1}6|6\\g{-1}7|7\\g{-1}8|8\\g{-1}9)
|0\\g{-2}(\\d)\\g{-2}\\g{-1}
|(\\d)\\g{-4}\\g{-1}\\g{-3}0
)
|
(?=\\d((?-5))\\d((?-5)))
(?=
1\\g{-2}(?:2\\g{-1}0|3\\g{-1}1|4\\g{-1}2|5\\g{-1}3|6\\g{-1}4|7\\g{-1}5|8\\g{-1}6|9\\g{-1}7|0\\g{-1}8|1\\g{-1}9)
|2\\g{-2}(?:3\\g{-1}0|4\\g{-1}1|5\\g{-1}2|6\\g{-1}3|7\\g{-1}4|8\\g{-1}5|9\\g{-1}6|0\\g{-1}7|1\\g{-1}8|2\\g{-1}9)
|3\\g{-2}(?:4\\g{-1}0|5\\g{-1}1|6\\g{-1}2|7\\g{-1}3|8\\g{-1}4|9\\g{-1}5|0\\g{-1}6|1\\g{-1}7|2\\g{-1}8|3\\g{-1}9)
|4\\g{-2}(?:5\\g{-1}0|6\\g{-1}1|7\\g{-1}2|8\\g{-1}3|9\\g{-1}4|0\\g{-1}5|1\\g{-1}6|2\\g{-1}7|3\\g{-1}8|4\\g{-1}9)
|5\\g{-2}(?:6\\g{-1}0|7\\g{-1}1|8\\g{-1}2|9\\g{-1}3|0\\g{-1}4|1\\g{-1}5|2\\g{-1}6|3\\g{-1}7|4\\g{-1}8|5\\g{-1}9)
|6\\g{-2}(?:7\\g{-1}0|8\\g{-1}1|9\\g{-1}2|0\\g{-1}3|1\\g{-1}4|2\\g{-1}5|3\\g{-1}6|4\\g{-1}7|5\\g{-1}8|6\\g{-1}9)
|7\\g{-2}(?:8\\g{-1}0|9\\g{-1}1|0\\g{-1}2|1\\g{-1}3|2\\g{-1}4|3\\g{-1}5|4\\g{-1}6|5\\g{-1}7|6\\g{-1}8|7\\g{-1}9)
|8\\g{-2}(?:9\\g{-1}0|0\\g{-1}1|1\\g{-1}2|2\\g{-1}3|3\\g{-1}4|4\\g{-1}5|5\\g{-1}6|6\\g{-1}7|7\\g{-1}8|8\\g{-1}9)
|9\\g{-2}(?:0\\g{-1}0|1\\g{-1}1|2\\g{-1}2|3\\g{-1}3|4\\g{-1}4|5\\g{-1}5|6\\g{-1}6|7\\g{-1}7|8\\g{-1}8|9\\g{-1}9)
|0\\g{-2}(?:1\\g{-1}0|2\\g{-1}1|3\\g{-1}2|4\\g{-1}3|5\\g{-1}4|6\\g{-1}5|7\\g{-1}6|8\\g{-1}7|9\\g{-1}8|0\\g{-1}9)
)
)
\\d
)++
(?:
(?:\\.0+)?0*\\ [-+]?0*\\3\\49(?:\\.0+)?0*\\ [-+]?0*\\5\\51(?:\\.0+)?0*$
|
\\ [-+]?0*\\3\\49(\\.?\\d*?)0*\\ [-+]?0*\\5\\51\\g{-1}(?:\\.0+)?0*$
|
(\\.?\\d*?)0*\\ [-+]?0*\\3\\49\\g{-1}(?:\\.0+)?0*\\ [-+]?0*\\5\\51$
|
\\.?
(?:
(?=\\d\\d((?&d))((\\g{-2}?+\\.?)\\d))
(?=\\d(\\S*?\\g{-4}\\g{-2}))
(?=0\\g{-1}9|1\\g{-1}8|2\\g{-1}7|3\\g{-1}6|4\\g{-1}5|5\\g{-1}4|6\\g{-1}3|7\\g{-1}2|8\\g{-1}1|9\\g{-1}0)
\\d
(?=\\S*?(\\g{-5}(\\g{-5})))
)*+
(?=\\d(\\g{-3}|(?&d)\\.?))
(?=1\\g{-1}9|2\\g{-1}8|3\\g{-1}7|4\\g{-1}6|5\\g{-1}5|6\\g{-1}4|7\\g{-1}3|8\\g{-1}2|9\\g{-1}1)
\\d0*\\ [-+]?0*\\3\\49\\.?0*\\ [-+]?0*\\5\\51\\g{-2}?+\\.?\\d0*$
)
|
(?=[^-]\\S*\\ -\\S*\\ [^-]\\S*|-\\S*\\ [^-]\\S*\\ -)
[-+]?(?:0\\B)*+
(?=
(?(?!\\S+\\ [-+]?(?:0\\B)*+\\3\\.?(?!(?!(?&e))))
(?=\\3\\5\\2\\b)
|
(?=\\d*(\\S*\\ (?(?=.*+\\3)\\S+\\ )[-+]?(?:0\\B)*+)\\d*?(\\4|\\6)\\b)
(?(?=10*\\2\\b)
1(?:0(?=\\d*\\75(\\g{-1}?+9)))*?
\\2\\b\\75\\g{-1}?+\\76\\b
|
(?:(\\d)(?=\\d*\\75(\\g{-1}?+\\g{-2})))*+
(?=\\d(\\d*\\75\\g{-2}?+))
(?=1\\g{-1}0|2\\g{-1}1|3\\g{-1}2|4\\g{-1}3|5\\g{-1}4|6\\g{-1}5|7\\g{-1}6|8\\g{-1}7|9\\g{-1}8)
\\d
(?:0(?=\\d*\\75\\g{-2}?+\\d(\\g{-1}?+9)))*?
\\2\\b\\75\\g{-3}?+\\d\\g{-1}?+\\76\\b
)
)
)
\\1
(?:
(?=\\.?(\\d)\\S*\\ [-+]?(?:0\\B)*+\\3((\\g{-2}?+\\.?)\\d)\\S*\\ [-+]?(?:0\\B)*+\\5((\\g{-2}?+\\.?)\\d))
\\.?
(?(?=(?!
\\S*\\ [-+]?(?:0\\B)*+\\3\\83\\.?
(?<e>
(?:
(?=\\d\\.?\\d(?<f>\\S*?\\ [-+]?(?:0\\B)*\\5\\85?+)((\\g{-2}?+\\.?)\\d))
(?=\\d(\\S*?\\g{-4}\\g{-2}))
(?=0\\g{-1}9|1\\g{-1}8|2\\g{-1}7|3\\g{-1}6|4\\g{-1}5|5\\g{-1}4|6\\g{-1}3|7\\g{-1}2|8\\g{-1}1|9\\g{-1}0)
\\d\\.?
(?=\\S*?(\\g{-5}\\g{-4}))
)*+
(?=\\d(\\g{-2}\\.?|(?&f)\\.?))
(?=[5-9]\\g{-1}[5-9]|1\\g{-1}9|2\\g{-1}[89]|3\\g{-1}[7-9]|4\\g{-1}[6-9]|6\\g{-1}4|7\\g{-1}[34]|8\\g{-1}[2-4]|9\\g{-1}[1-4])
){0}
(?&e)
))
(?=\\d(\\S*\\ [-+]?(?:0\\B)*\\3\\84)\\d(\\S*\\ [-+]?(?:0\\B)*\\5\\86))
(?=
(?:2\\g{-2}1|3\\g{-2}2|4\\g{-2}3|5\\g{-2}4|6\\g{-2}5|7\\g{-2}6|8\\g{-2}7|9\\g{-2}8|0\\g{-2}9)\\g{-1}1
|(?:3\\g{-2}1|4\\g{-2}2|5\\g{-2}3|6\\g{-2}4|7\\g{-2}5|8\\g{-2}6|9\\g{-2}7|0\\g{-2}8|1\\g{-2}9)\\g{-1}2
|(?:4\\g{-2}1|5\\g{-2}2|6\\g{-2}3|7\\g{-2}4|8\\g{-2}5|9\\g{-2}6|0\\g{-2}7|1\\g{-2}8|2\\g{-2}9)\\g{-1}3
|(?:5\\g{-2}1|6\\g{-2}2|7\\g{-2}3|8\\g{-2}4|9\\g{-2}5|0\\g{-2}6|1\\g{-2}7|2\\g{-2}8|3\\g{-2}9)\\g{-1}4
|(?:6\\g{-2}1|7\\g{-2}2|8\\g{-2}3|9\\g{-2}4|0\\g{-2}5|1\\g{-2}6|2\\g{-2}7|3\\g{-2}8|4\\g{-2}9)\\g{-1}5
|(?:7\\g{-2}1|8\\g{-2}2|9\\g{-2}3|0\\g{-2}4|1\\g{-2}5|2\\g{-2}6|3\\g{-2}7|4\\g{-2}8|5\\g{-2}9)\\g{-1}6
|(?:8\\g{-2}1|9\\g{-2}2|0\\g{-2}3|1\\g{-2}4|2\\g{-2}5|3\\g{-2}6|4\\g{-2}7|5\\g{-2}8|6\\g{-2}9)\\g{-1}7
|(?:9\\g{-2}1|0\\g{-2}2|1\\g{-2}3|2\\g{-2}4|3\\g{-2}5|4\\g{-2}6|5\\g{-2}7|6\\g{-2}8|7\\g{-2}9)\\g{-1}8
|(?:0\\g{-2}1|1\\g{-2}2|2\\g{-2}3|3\\g{-2}4|4\\g{-2}5|5\\g{-2}6|6\\g{-2}7|7\\g{-2}8|8\\g{-2}9)\\g{-1}9
|(\\d)\\g{-3}0\\g{-2}\\g{-1}
|(\\d)\\g{-4}\\g{-1}\\g{-3}0
)
|
(?=\\d((?-5))\\d((?-5)))
(?=
(?:2\\g{-2}0|3\\g{-2}1|4\\g{-2}2|5\\g{-2}3|6\\g{-2}4|7\\g{-2}5|8\\g{-2}6|9\\g{-2}7|0\\g{-2}8|1\\g{-2}9)\\g{-1}1
|(?:3\\g{-2}0|4\\g{-2}1|5\\g{-2}2|6\\g{-2}3|7\\g{-2}4|8\\g{-2}5|9\\g{-2}6|0\\g{-2}7|1\\g{-2}8|2\\g{-2}9)\\g{-1}2
|(?:4\\g{-2}0|5\\g{-2}1|6\\g{-2}2|7\\g{-2}3|8\\g{-2}4|9\\g{-2}5|0\\g{-2}6|1\\g{-2}7|2\\g{-2}8|3\\g{-2}9)\\g{-1}3
|(?:5\\g{-2}0|6\\g{-2}1|7\\g{-2}2|8\\g{-2}3|9\\g{-2}4|0\\g{-2}5|1\\g{-2}6|2\\g{-2}7|3\\g{-2}8|4\\g{-2}9)\\g{-1}4
|(?:6\\g{-2}0|7\\g{-2}1|8\\g{-2}2|9\\g{-2}3|0\\g{-2}4|1\\g{-2}5|2\\g{-2}6|3\\g{-2}7|4\\g{-2}8|5\\g{-2}9)\\g{-1}5
|(?:7\\g{-2}0|8\\g{-2}1|9\\g{-2}2|0\\g{-2}3|1\\g{-2}4|2\\g{-2}5|3\\g{-2}6|4\\g{-2}7|5\\g{-2}8|6\\g{-2}9)\\g{-1}6
|(?:8\\g{-2}0|9\\g{-2}1|0\\g{-2}2|1\\g{-2}3|2\\g{-2}4|3\\g{-2}5|4\\g{-2}6|5\\g{-2}7|6\\g{-2}8|7\\g{-2}9)\\g{-1}7
|(?:9\\g{-2}0|0\\g{-2}1|1\\g{-2}2|2\\g{-2}3|3\\g{-2}4|4\\g{-2}5|5\\g{-2}6|6\\g{-2}7|7\\g{-2}8|8\\g{-2}9)\\g{-1}8
|(?:0\\g{-2}0|1\\g{-2}1|2\\g{-2}2|3\\g{-2}3|4\\g{-2}4|5\\g{-2}5|6\\g{-2}6|7\\g{-2}7|8\\g{-2}8|9\\g{-2}9)\\g{-1}9
|(?:1\\g{-2}0|2\\g{-2}1|3\\g{-2}2|4\\g{-2}3|5\\g{-2}4|6\\g{-2}5|7\\g{-2}6|8\\g{-2}7|9\\g{-2}8|0\\g{-2}9)\\g{-1}0
)
)
\\d
)++
(?:
(?:\\.0+)?0*\\ [-+]?0*\\3\\83(?:\\.0+)?0*\\ [-+]?0*\\5\\85(?:\\.0+)?0*$
|
(\\.?\\d*?)0*\\ [-+]?0*\\3\\83\\g{-1}(?:\\.0+)?0*\\ [-+]?0*\\5\\85$
|
(\\.?\\d*?)0*\\ [-+]?0*\\3\\83\\ [-+]?0*\\5\\85\\g{-1}(?:\\.0+)?0*$
|
\\.?0*\\ [-+]?(?:0\\B)*+\\3\\83\\.?
(?:
(?=\\d\\d((?&f))((\\g{-2}?+\\.?)\\d))
(?=\\d(\\S*?\\g{-4}\\g{-2}))
(?=0\\g{-1}9|1\\g{-1}8|2\\g{-1}7|3\\g{-1}6|4\\g{-1}5|5\\g{-1}4|6\\g{-1}3|7\\g{-1}2|8\\g{-1}1|9\\g{-1}0)
\\d
(?=\\S*?(\\g{-5}(\\g{-5})))
)*+
(?=\\d(\\g{-3}|(?&f)\\.?))
(?=1\\g{-1}9|2\\g{-1}8|3\\g{-1}7|4\\g{-1}6|5\\g{-1}5|6\\g{-1}4|7\\g{-1}3|8\\g{-1}2|9\\g{-1}1)
\\d0*\\ [-+]?0*\\5\\85\\g{-2}?+\\.?\\d0*$
)
)', 'gm')
const str = `0 0 0
-1 0 -1
1 0 -1
-1 100 99
1 99 1000
-10.000 0.0001 -9.9999
-234434.943279 9099898.9044 8865463.961121`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions