in reply to regexp help -- grab almost a whole string

Since your desired capture is essentially two strings, you would have to join the two halves together after the capture. How about:

$circuit_id = join q{}, $if_descr =~ /([^.]*)\.?([^.]*)/;

Easier, though, is just to do:

$circuit_id = $if_descr; $circuit_id ~= s/\.//;