The first value is just the first value of @lines. The rest are return values of the match -- which returns each subpattern matched by a set of () in list context. If you want only the first one returned, get rid off all the capturing parens except the outer ones.