#!/bin/bash
s='Some.text.1234.text
Some.text.1234.i10u20.text
Some.text.1234.I01U02.text
Some.text.1234.i83U23.text'
extractrx='(.+)\.([0-9]+)\.[^.]+$'
for f in $s; do
if [[ "${f^^}" =~ I[0-9]{2}U[0-9]{2} ]]; then
echo "$f is invalid";
else
if [[ "$f" =~ $extractrx ]]; then
echo "Result: '${BASH_REMATCH[1]}' and '${BASH_REMATCH[2]}'"
else
echo "$f is valid"
fi;
fi;
done;
IyEvYmluL2Jhc2gKcz0nU29tZS50ZXh0LjEyMzQudGV4dApTb21lLnRleHQuMTIzNC5pMTB1MjAudGV4dApTb21lLnRleHQuMTIzNC5JMDFVMDIudGV4dApTb21lLnRleHQuMTIzNC5pODNVMjMudGV4dCcKZXh0cmFjdHJ4PScoLispXC4oWzAtOV0rKVwuW14uXSskJwpmb3IgZiBpbiAkczsgZG8KICBpZiBbWyAiJHtmXl59IiA9fiBJWzAtOV17Mn1VWzAtOV17Mn0gXV07IHRoZW4KICAgIGVjaG8gIiRmIGlzIGludmFsaWQiOwogIGVsc2UKICAgICBpZiBbWyAiJGYiID1+ICRleHRyYWN0cnggXV07IHRoZW4KICAgICAgIGVjaG8gIlJlc3VsdDogJyR7QkFTSF9SRU1BVENIWzFdfScgYW5kICcke0JBU0hfUkVNQVRDSFsyXX0nIgogICAgIGVsc2UKICAgICAgIGVjaG8gIiRmIGlzIHZhbGlkIgogICAgIGZpOwogIGZpOwpkb25lOw==