есть текст [a]какой то текст[/a] еще куча какого то текста, [a]какой то текст[/a]
есть регулярка /(\[a.+\/a\])/ если текст без переноса строки, то находит начиная от [a] заканчивая [/a], то есть включая не нуныйй текст, который не обнимается [a][/a]
как найти весть текст который обнимаются этим: [a][/a]
Используйте модификатор s и нежадный квантификатор *?:
'~\[a].*?\[/a]~s'
Или
'~\[a][\s\S]*?\[/a]~'
См. демо регулярного выражения. Так как [\s\S] находит любой символ по умолчанию, модификатор s не нужен.
Подробности
\[a] - [a].*? / [\s\S]*? - любые 0 и более символов, но как можно меньше, до первого вхождения...\[/a] - [/a].Продвижение своими сайтами как стратегия роста и независимости