strng="abcABC123"
______^_________$ - определение в строке положения метасимволов начала и конца строки
Перевести регулярное выражение в читаемый вид:
^[a-z]$
^________ - начало строки
_^^^^^___ - буква латинского языка в нижнем регистре
______^__ - конец строки
Под выражение попадет только одна буква находящаяся в строке, так как границы имею четкую привязанность.
string="a"
_______^_$
Для примера указать только символ начала строки в выражении ^[a-z]
то регулярное выражение найдет из обоих примеров string только первую a
strng="abcABC123"
______^__________ - начало строки
_______^_________ - [a-z]
Так как нет ограничения что далее идет конец строки, то будет выбрана только первая буква в нижнем регистре находящаяся в начале строки.
[a-z]
без указания границ строки в сочетании с findall
(своеобразный аналог глобального поиска) осуществляет поиск всех одиночных символов латинского алфавита в нижнем регистре:
strng="abcABC123"
_______^_________ - 1 совпадение
________^________ - 2 совпадение
_________^_______ - 3 совпадение
__________^^^^^^_ - так же проверяются, но данные под захват не подходят.
Поиск одиночных выполняется по порядку слева на право и захватывает символы подходящие под шаблон из любого места