<?php
$str = '--comments--
list of comments
-pre-
comment 1
-/pre-
-pre-
comment 2
-/pre-
--Answers--
list of Answers
-pre-
Answer 1
-/pre-
-pre-
Answer 2
-/pre-
-pre-
Answer 3
-/pre-
-pre-
Answer 4
-/pre-
-pre-
Answer 5
-/pre-
';
preg_match_all('~(?:--([^-]+)--(?:(?!-pre-).)+|(?!\A)\G)\R*-pre-\s*((?:(?!-/pre-).)*)-/pre-\K~s', $str, $matches, PREG_SET_ORDER
);
// Filter empty values
}, $matches);
// Initialize two variables which we use them soon
$index = null; $finalArray = [];
// Iterate over recent matches in order to apply keys
array_map(function($array) use (&$index, &$finalArray) { count($array) == 2 ?
($index = $array[0]) && ($finalArray[$index][] = $array[1]) : $finalArray[$index][] = $array[0]; }, $matches);
// Print out
PD9waHAgCiRzdHIgPSAnLS1jb21tZW50cy0tCmxpc3Qgb2YgY29tbWVudHMKLXByZS0KY29tbWVudCAxCi0vcHJlLQoKLXByZS0KY29tbWVudCAyCi0vcHJlLQoKLS1BbnN3ZXJzLS0KbGlzdCBvZiBBbnN3ZXJzCi1wcmUtCkFuc3dlciAxCi0vcHJlLQoKLXByZS0KQW5zd2VyIDIKLS9wcmUtCi1wcmUtCkFuc3dlciAzCi0vcHJlLQotcHJlLQpBbnN3ZXIgNAotL3ByZS0KLXByZS0KQW5zd2VyIDUKLS9wcmUtCic7CgpwcmVnX21hdGNoX2FsbCgnfig/Oi0tKFteLV0rKS0tKD86KD8hLXByZS0pLikrfCg/IVxBKVxHKVxSKi1wcmUtXHMqKCg/Oig/IS0vcHJlLSkuKSopLS9wcmUtXEt+cycsICRzdHIsICRtYXRjaGVzLCBQUkVHX1NFVF9PUkRFUik7CgovLyBGaWx0ZXIgZW1wdHkgdmFsdWVzCiRtYXRjaGVzID0gYXJyYXlfbWFwKGZ1bmN0aW9uKCR2KSB7CglyZXR1cm4gYXJyYXlfdmFsdWVzKGFycmF5X2ZpbHRlcigkdikpOwp9LCAkbWF0Y2hlcyk7CgovLyBJbml0aWFsaXplIHR3byB2YXJpYWJsZXMgd2hpY2ggd2UgdXNlIHRoZW0gc29vbgokaW5kZXggPSBudWxsOyAkZmluYWxBcnJheSA9IFtdOwoKLy8gSXRlcmF0ZSBvdmVyIHJlY2VudCBtYXRjaGVzIGluIG9yZGVyIHRvIGFwcGx5IGtleXMKYXJyYXlfbWFwKGZ1bmN0aW9uKCRhcnJheSkgdXNlICgmJGluZGV4LCAmJGZpbmFsQXJyYXkpIHsKCWNvdW50KCRhcnJheSkgPT0gMiA/ICgkaW5kZXggPSAkYXJyYXlbMF0pICYmICgkZmluYWxBcnJheVskaW5kZXhdW10gPSAkYXJyYXlbMV0pIDogJGZpbmFsQXJyYXlbJGluZGV4XVtdID0gJGFycmF5WzBdOwp9LCAkbWF0Y2hlcyk7CgovLyBQcmludCBvdXQKcHJpbnRfcigkZmluYWxBcnJheSk7