#!/usr/bin/env perl use strict; use warnings; use Data::Dumper; my $initialStr = "[20150302 22:01:05] [1, 2, 3, 4] String0\n [20150302 22:01:05] [1, 2, 3, 4] String1\n [20150302 22:01:05] [1, 2, 3, 4] String2\n [20150302 22:01:05] [1, 2, 3, 4] String3\n [20150302 22:01:05] [1, 2, 3, 4] String4\n [20150302 22:01:05] [1, 2, 3, 4] String5\n [20150302 22:01:05] [1, 2, 3, 4] String6\n [20150302 22:01:05] [1, 2, 3, 4] String7\n"; my @matches = $initialStr =~ /\[\d+ \d{2}:\d{2}:\d{2}\]\s+(.+)\n/g; print Dumper \@matches;