Tak jak říkáte, tak to hledá no - 'b' a string končící na 'b'.
To bych chápal, kdyby to nebylo ukotvený těmi '^ $' - které mi, pokud vím, určují délku řetězce (v tomto případě by měli být snad maximalně 2).Nejspíš je to opravdu blbost,spíš mi šlo jenom o to, to nějak pochopit - proč se to chová, tak jak se to chová.
Předtím jsem myslel že u každého tohoto znaku je nutné zadat před i za nějaký jiný znak ( 'a?b' nebo 'a+bcd' )
Pak jsem narazil na tyto stranky, kde používali znaky pouze za tím řetězcem a dál už nic ... proto mě napadlo zkusit to i s tím '?'.
http://www.regularnivyrazy.info/shrnuti-syntaxe.ht ml#.VTCn9JMXu-0
Nejspíš to tak platí pouze pro '+' a '*' a '?' by měl mít znaky před i za.