Une discussion plus complète des pièges de l'utilisation d'une expression régulière pour trouver la correspondance des balises peut être trouvé à: http://faq.perl.org/perlfaq4.html#How_do_I_find_matchi. En particulier, sachez que l'imbrication des balises vraiment besoin d'un véritable analyseur afin d'être interprétées correctement.
Notez que la sensibilité de cas devra être désactivée afin de répondre à la question comme l'a déclaré. En perl, c'est la que je modificateur:
$ echo "Data Data Data [Start] Data i want [End] Data" \
| perl -ne '/\[start\](.*?)\[end\]/i; print "$1\n"'
Data i want
L'autre astuce consiste à utiliser le *? quantificateur qui désactive la gourmandise de la correspondance capturée. Par exemple, si vous avez une non-correspondance [fin] tag:
Data Data [Start] Data i want [End] Data [end]
vous ne voulez probablement pas à la capture:
Data i want [End] Data