Более полный анализ ошибок с использованием regex, чтобы найти соответствующие теги могут быть найдены по адресу:
http://faq.perl.org/perlfaq4.html#How_do_I_find_matchi. В частности, следует знать, что вложенность тегов действительно нужен полноценный парсер для того, чтобы быть правильно истолкован.
Обратите внимание, что чувствительность к регистру должны быть выключены для того, чтобы ответить на вопрос, как говорится. В Perl, это я модификатор:
$ echo "Data Data Data [Start] Data i want [End] Data" \
| perl
Другой трюк заключается в использовании *? Квантор, который выключает жадность захваченных матч. Например, если у вас есть несоответствие [конец] тег:
Data Data [Start] Data i want [End] Data [end]
вы, наверное, не хотите, чтобы захватить:
Data i want [End] Data