Unmatched ) in regex; marked by <-- HERE in m/ [A-Z]+ # WB \(\d+,\d+) <-- HERE # (1,2) \s*=\s* # = (?: # start non-capturing group \d+\.\d+, # a float followed by comma \s*(\d+\.\d+),? # capture a float (followed by comma?) ) # end-group / at /tmp/wb line 10.