in reply to Splitting and maintaining the delimiter

Maybe this is what you want ...
#!/usr/bin/perl -w use strict; while(<DATA>) { my @tags = ( /(\:TAG\:.*?)[(?=:)]/g ); for my $tag ( @tags ) { print "$tag\n"; } } __DATA__ :TAG: This is just some text. blahblahblahblahblahblahblah blahblahbla +h. blahblah? blah.:TAG: This is just some text. blahblahblahblahblah +blahblah blahblahblah. blahblah? blah. :TAG: This is just some text. + blahblahblahblahblahblahblah blahblahblah. blahblah? blah. :TAG: Th +is is just some more text. blahblahblahblahblahblahblah blahblahblah. + blahblah? blah.