Regular Expressions 101

Save & Share

Flavor

  • PCRE2 (PHP >=7.3)
  • PCRE (PHP <7.3)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java 8
  • .NET 7.0 (C#)
  • Rust
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests

Tools

Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Non-capturing group
    (?:...)
  • Capturing group
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression

/
/
gmx

Test String

Code Generator

Generated Code

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