split() is powerful, but it isn't the only tool in the bag. If what you're after is either "Data..." or the named anchor, a better way to approach the problem might be to first isolate the text within the start and end tags, and then decide what to do with it. Assuming text is in $text, and scan span several lines, something like the following should do the trick:
while ( $text =~ m/<!--start-->(.*?)<--end-->/s ) {
my $chunk = $1;
if ( $chunk =~ /<a name="(.+?)"></a>/ ) {
# do something with $1
}
else {
# do something with $chunk
}
}