I've not yet understood why return two parts here now; i.e. what's the reationale for having separate "open" and "close" expressions? Could you maybe give an example?

Btw. we should return a more descriptive object instead of an array, i.e. a class which contains the two expressions.