What extensions are used in a module, and what do they mean? I suppose there's a drupal page somewhere that explains this, but I can't find it.

When creating a module, you can have files that end with .module, .info, .inc, etc...

What are all the file extensions that are recognized and what do they do?
The extensions that are specific for Drupal, or that have a specific meaning in Drupal, are the following ones:


The .api.php extension is used for the file describing the hooks used by a module, such as system.api.php.
The .install extension is used for the file that is used when a module is installed, such as system.install. It is also loaded when Drupal is verifying the requirements needed from a module.
The .inc extension is used for any secondary file that contains code that is loaded only when necessary. If the code is used in specific cases, such as when a specific menu callback is being invoked, then the code is moved in a separated .inc file. Often, you will find modules using a file with the .admin.inc extension (e.g. node.admin.inc) that includes all the code necessary to run the administrative interface, and a file with .pages.inc extension (e.g. node.pages.inc) that contains the code executed for other menu callbacks. If a module implements tokens, in Drupal 7 you will find files using .tokens.inc as extension (e.g. user.token.inc); those are the files where the implementations of hook_token_info(), and hook_tokens() are looked for (see system_hook_info()).
The .info extension is used for the file describing the module, or the theme, such as system.info. It contains metadata, such as the required Drupal version, the minimum PHP version with which the module/theme is compatible, and other information specific for the module, or the theme.
The .module extension is used for the main file of a module, such as system.module.
The .test extension is used for the files containing the testing code (e.g. system.test), which is actually running on the SimpleTest framework.
The .theme extension was used from themes not using PHPTemplate template engine. In Drupal 6 (and before) the extension was used from the chameleon.theme file; in Drupal 7, there aren't themes using that extension.
The .tpl.php extension is used for the template files used from theme functions, such as node.tpl.php.


Third-party modules can use specific extensions, such as the following ones:


The .views_default.inc extension is used for files (e.g. node.views_default.inc) containing the code to implement the default views used from a module that integrates with the Views module.
The .views_template.inc extension is used for files (e.g. node.views_template.inc) containing the code for views templates.
The .rules.inc extension is used for files containing code for integrating with the Rule module.