# Filename > [Regular expression][mdn-regexp] to split a [POSIX][posix] filename.
## Usage ```javascript var reFilenamePosix = require( '@stdlib/regexp/filename-posix' ); ``` #### reFilenamePosix() Returns a [regular expression][mdn-regexp] to split a [POSIX][posix] filename. ```javascript var RE_FILENAME_POSIX = reFilenamePosix(); var parts = RE_FILENAME_POSIX.exec( '/foo/bar/index.js' ).slice(); /* returns [ '/foo/bar/index.js', // input value '/', // root 'foo/bar/', // dirname 'index.js', // basename '.js' // extname ] */ ``` #### reFilenamePosix.REGEXP [Regular expression][mdn-regexp] to split a [POSIX][posix] filename. ```javascript var parts = reFilenamePosix.REGEXP.exec( '/foo/bar/index.js' ).slice(); /* returns [ '/foo/bar/index.js', // input value '/', // root 'foo/bar/', // dirname 'index.js', // basename '.js' // extname ] */ ```
## Notes - When executed against dotfile filenames (e.g., `.gitignore`), the [regular expression][mdn-regexp] does **not** capture the basename as a filename extension. ```javascript var parts = reFilenamePosix.REGEXP.exec( '.bash_profile' ).slice(); /* returns [ '.bash_profile', '', '', '.bash_profile', '' ] */ parts = reFilenamePosix.REGEXP.exec( '.travis.yml' ).slice(); /* returns [ '.travis.yml', '', '', '.travis.yml', '.yml' ] */ ```
## Examples ```javascript var reFilenamePosix = require( '@stdlib/regexp/filename-posix' ); var RE_FILENAME_POSIX = reFilenamePosix(); var parts = RE_FILENAME_POSIX.exec( 'index.js' ).slice(); /* returns [ 'index.js', '', '', 'index.js', '.js' ] */ parts = RE_FILENAME_POSIX.exec( '/foo/bar/home.html' ).slice(); /* returns [ '/foo/bar/home.html', '/', 'foo/bar/', 'home.html', '.html' ] */ parts = RE_FILENAME_POSIX.exec( 'foo/file.pdf' ).slice(); /* returns [ 'foo/file.pdf', '', 'foo/', 'file.pdf', '.pdf' ] */ parts = RE_FILENAME_POSIX.exec( 'beep/boop.' ).slice(); /* returns [ 'beep/boop.', '', 'beep/', 'boop.', '.' ] */ parts = RE_FILENAME_POSIX.exec( '' ).slice(); /* returns [ '', '', '', '', '' ] */ parts = RE_FILENAME_POSIX.exec( '/foo/bar/file' ).slice(); /* returns [ '/foo/bar/file', '/', 'foo/bar/', 'file', '' ] */ parts = RE_FILENAME_POSIX.exec( '/foo/bar/.gitignore' ).slice(); /* returns [ '/foo/bar/.gitignore', '/', 'foo/bar/', '.gitignore', '' ] */ ```