Судя по вашим комментариям, кажется, что вы после того, как соответствует 50 символов непосредственно после матча.Итак, простое решение было бы:
my ($match) = $line =~ /CCGTCAATTC[AC]TTT[AG]AGT(.{50})/;
Как видите, [AG]
эквивалентно A|G
.Если вы хотите совпадать несколько раз, вы можете использовать массив @matches
и глобальную опцию /g
в регулярном выражении.Например,
my @matches = $line =~ /CCGTCAATTC[AC]TTT[AG]AGT(.{50})/g;
Вы можете сделать это, чтобы сохранить соответствующий шаблон:
my ($pattern, $match) = $line =~ /(CCGTCAATTC[AC]TTT[AG]AGT)(.{50})/g;
Или в цикле:
while ($line =~ /(CCGTCAATTC[AC]TTT[AG]AGT)(.{50})/g;) {
my ($pattern, $match) = ($1, $2);
}