Если вы хотите получить не только объявления классов, но и экземпляры классов, вы можете использовать что-то вроде (учитывая, что имена классов следуют условным обозначениям и начинаются с заглавной буквы):
const sample = `class Foo {};
$a = new Bar;
const myConst = 42;
function thisIsAFunction(){
console.log(123);
}
class FlowController{}
let laser = new LaserActivator()
var myVar;class NewClass{...};
`;
const classExp = /[\s;][A-Z]\w+?[({\s;]/gm;
sample.match(classExp); //[" Foo ", " Bar;", " FlowController{", " LaserActivator(", " NewClass{"]
Или если вы этого не сделаетечтобы присутствовали дополнительные символы, такие как пробелы, точки с запятой и т. д., вы можете использовать lookahead (что-то вроде этого):
/[\s;][A-Z]\w+?(?=([\({\s]))/gm;