in reply to Remove text between two Start and End Tags (Regex)

Get rid of all the square brackets from your regex because you do not have any in your input string:
use warnings; use strict; my $sentence = "Furthermore , expression of <GENE> Vpu </GENE> in Jurk +at T cells rendered them more susceptible to <GENE> Fas </GENE> - ind +uced death "; $sentence =~ s/<GENE>\s*(((?!<GENE>|<\/GENE>).)+)\s*<\/GENE>//gi; print "$sentence\n"; __END__ Furthermore , expression of in Jurkat T cells rendered them more susc +eptible to - induced death

Running your regex through YAPE::Regex::Explain highlighted the square brackets