First, I do not replicate your stated challenge. You say "that the $1 is unspecified", but when I get your posted code, I get:
GTTTCTCCCATCTCTCCATCGGCATAAAAATACAGAATGATC
which, while it is not correct, is not unspecified. Am I misunderstanding your statement, or are you seeing something different from your code? Make sure that your examples match up to the issues you are encountering.
If I run stevieb's solution, I get
GTTTCTCCCATCTCTCCATCGGCA
ATC
which would seem to meet your spec. The bigger question is what happens for nested cases? What is your expected output for
my $seq = 'ATGATGTGATGA';
Also, I note a reference to codons, which implies that your tests should be considering a stride of 3 rather than an arbitrary position. Does this matter for your case?
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.