Вам просто нужно использовать метод scan
с регулярным выражением:
str.scan(/\[(.*?)\]/).flatten
Фактический объем производства:
2.2-head :001 > str = "Coming this week for [CurrentCourseName] chapter [Chaptername] of interesting event [EventName]"
=> "Coming this week for [CurrentCourseName] chapter [Chaptername] of interesting event [EventName]"
2.2-head :002 > str.scan(/\[(.*?)\]/).flatten
=> ["CurrentCourseName", "Chaptername", "EventName"]