private List<File> find(String start, String extensionPattern)

	{
		final List<File> files = new ArrayList<File>(1024);
		final Stack<File> dirs = new Stack<File>();
		final File startdir = new File(start);
		final Pattern p = Pattern.compile(extensionPattern,
				Pattern.CASE_INSENSITIVE);

		if (startdir.isDirectory())
			dirs.push(startdir);

		while (dirs.size() > 0) {
			for (File file : dirs.pop().listFiles()) {
				if (file.isDirectory())
					dirs.push(file);
				else if (p.matcher(file.getName()).matches())
					files.add(file);
			}
		}

		return files;
	}