public List<FunctionRecord> getFunctionRecordsByNameRegex(String regex) throws IOException {
		Matcher matcher = Pattern.compile(regex).matcher("");
		DBFieldIterator iterator = table.indexKeyIterator(NAME_ID_COL);

		if (!iterator.hasNext()) {
			return Collections.emptyList();
		}
		List<FunctionRecord> list = new ArrayList<>();
		while (iterator.hasNext()) {
			Field key = iterator.next();
			FunctionRecord functionRecord = functionCache.get(key.getLongValue());
			if (functionRecord == null) {
				DBRecord record = table.getRecord(key);
				long nameID = record.getLongValue(NAME_ID_COL);
				StringRecord nameRecord = stringsTable.lookupString(nameID);
				String name = nameRecord.getValue();
				matcher.reset(name);
				if (matcher.matches()) {
					functionRecord = new FunctionRecord(fidDb, functionCache, record);
				}
			}
			else {
				matcher.reset(functionRecord.getName());
				if (!matcher.matches()) {
					functionRecord = null;
				}
			}
			if (functionRecord != null) {
				list.add(functionRecord);
			}
		}
		return list;
	}
Performs a SLOW search of all function records, looking for functions whose name matches
the regular expression provided as an argument.
@param regex the regular expression to match
@return a list of the matching function records
@throws IOException if database iteration encounters an error
Ghidra/Features/FunctionID/src/main/java/ghidra/feature/fid/db/FunctionsTable.java