My sub-extractor pattern only gets one instance of my data. How can I get all of the data?

A sub-extractor pattern will, by design, match only once per dataRecord.

If you need to match a datum that appears more than once, you need to use: scrapeableFile.extractData()

If you, for example, have a list of businesses that you want to scrape, and each has a variable number of products, you can make an extractor to get each business and it's whole list of products. You will then have a script that uses scrapeableFile.extractData() to call a separate extractor to get each product. By doing this you can use multiple extractor patterns, and still keep the businesses and products associated.