use strict;
my $str = 'Linda Casa Térrea com edícula em São Paulo - Vila Alpina<br /><br /> Casa principal é térrea. Sala de estar, sala de jantar cozinha ampla, 03 dormitórios sendo 01 suíte com closet, 05 vagas cobertas. <br /> Casa principal é térrea. Sala de estar, sala de jantar e cozinha ampla. <li>Teste 1</li><li>Teste 2</li><li>Teste 3</li><br /> Casa dos fundos é um loft moderno com pé direito duplo, mezanino, sala 02 ambientes com lareira, cozinha americana planejada, 01 suíte com armários planejados e hidromassagem, jardim de inverno com espelho d\'água. <br /><br /> Jardim com 80 m², espaço gourmet com 02 quiosques. <br /><br /><b> Área construída 300 m² / Área total 380 m²:</b><li>Teste 1</li><li>Teste 2</li><li>Teste 3</li><br /><br /> Valor R$ 800.000,00<br /> <span class="censor">Ref. 3128</span><br /><br /> <br /> <a class="censor link txtLnk ex" href="link=Z2FicmllbGltb3ZlaXMuY29tLmJy" title="Clique para abrir este link" rel="nofollow">teste.com.br</a><br /> <a class="censor link txtLnk nb" href="mailto:teste@teste.com.br" title="Clique para enviar um email a este destinatário" rel="nofollow">teste@teste.com.br</a>';
my $regex = qr/<li.*?(?!<br).*?\/li>/mp;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html