javascript - RegExp: Identifying poor regular expression -


i'm working regular expressions , curious how authors of regexp go identifying improvements patterns write. example, here's pattern identifying simple currency expression (omitting literal symbol or as2/as3 identifier simplicity). me, appears pretty concise , when running in js environment identified test cases accurately. yet, can see i've used 3 if/else statements , perhaps use case makes expression longer should or needed be. there general rule of thumb when comes regexp optimisation? or nature of language makes case "if works correct expression"?

thanks reading , feedback, suggestions or critiques.

regexp pattern:

/((\s\.){1})|((\d+){1})((\.\d+|\,\d+)|(\d+)){1,}/ 

regexp breakdown:

/* */ ((\s\.){1}) /** whitespace followed period once **/  /* b */ ((\d+){1}) /** number of digits occurs once before broken pattern **/         ((\s\.){1})|((\d+){1}) /** either pattern or b **/  /* c */ (\.\d+|\,\d+) /** either period or comma preceeding pattern of digits **/  /* d */ (\d+) /** number of digits occurs before broken pattern **/  ((\.|\,)|(\d+)){1,} /** either pattern or b repeated @ least once **/  /* final */  ((\s\.){1})|((\d+){1})((\.\d+|\,\d+)|(\d+)){1,}