<?php
$re = '~c(?<start>\d+(?:\[\d+])?)(?:-(?<end>(?&start)?))?~';
$str = "c2,c3-5,c6[2],c8[4]-10,c14-21[5]";
return array("start" => $ms, "end" => $me); }, $matches["start"], $matches["end"]);
PD9waHAKCiRyZSA9ICd+Yyg/PHN0YXJ0PlxkKyg/OlxbXGQrXSk/KSg/Oi0oPzxlbmQ+KD8mc3RhcnQpPykpP34nOyAKJHN0ciA9ICJjMixjMy01LGM2WzJdLGM4WzRdLTEwLGMxNC0yMVs1XSI7IApwcmVnX21hdGNoX2FsbCgkcmUsICRzdHIsICRtYXRjaGVzKTsKJHJlcyA9IGFycmF5X21hcChmdW5jdGlvbigkbXMsICRtZSkgeyAKCXJldHVybiBhcnJheSgic3RhcnQiID0+ICRtcywgImVuZCIgPT4gJG1lKTsKfSwgJG1hdGNoZXNbInN0YXJ0Il0sICRtYXRjaGVzWyJlbmQiXSk7CnByaW50X3IoJHJlcyk7