citations function
The ids a text cites, ranges expanded; whole areas as C18.
Implementation
Set<String> citations(String text) {
final out = <String>{};
for (final m in _citation.allMatches(text)) {
final t = m.group(1)!.replaceAll(RegExp(r'\s'), '');
final parts = t.split(RegExp('[–]|(?<=\\d)-(?=[CDN])'));
if (parts.length == 2) {
out.addAll(_expand(parts[0], parts[1]));
} else {
out.add(t);
}
}
return out;
}