use strict;
my $str = '5:47 PM
[EASY] Panzer Pebble joined the server
5:47 PM
Trigger executed raw command message "76561199679367168" Welcome to EASY Company | Level 50+! If you have any issues, please report it by typing !admin (reason) in chat. Come check us out at discord.gg/easycompany. You MUST be level 50 or higher to play on this server and level 75 or higher to play commander.
5:47 PM
Player [EASY] Panzer Pebble switched from None to Allies
5:47 PM
MESSAGE: player [[EASY] Panzer Pebble(76561199679367168)], content [We are trying to populate the server which means special rules apply.
5:56 PM
MESSAGE: player [[EASY] Panzer Pebble(76561199679367168)], content [Vote for the nextmap:
5:59 PM
MESSAGE: player [[EASY] Panzer Pebble(76561199679367168)], content [We are trying to populate the server which means special rules apply.
5:59 PM
MESSAGE: player [[EASY] Panzer Pebble(76561199679367168)], content [This server is under level thresholds control.
6:18 PM
Player [EASY] Panzer Pebble switched from None to Axis
7:28 PM
MESSAGE: player [[EASY] Panzer Pebble(76561199679367168)], content [Vote for the nextmap:
7:48 PM
MASTER CHIEF (Axis) killed [EASY] Panzer Pebble (Allies) with GEWEHR 43
7:49 PM
Yustitsiya (Axis) killed [EASY] Panzer Pebble (Allies) with MP40
9:00 PM
MESSAGE: player [[EASY] Panzer Pebble(76561199679367168)], content [Vote for the nextmap:';
my $regex = qr/([0-9]{1,2}:[0-9]{2}) (AM|PM)(\n)(.*)\n/mup;
my $subst = '\\g<1>\\g<2> \\g<4>\\n';
my $result = $str =~ s/$regex/$subst/rg;
print "The result of the substitution is' $result\n";
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html