In large Dutch oven, heat olive oil over medium heat. Season short ribs with generous pinches of salt and pepper; in batches, brown ribs, flipping occasionally, about 3 minutes per side. Transfer ribs to a plate.
Add carrot, onion, celery and garlic and cook, stirring occasionally, until golden, 15 to 20 minutes. Add tomato paste and flour and cook, stirring, for 2 minutes. Stir in wine. Cook, scraping up browned bits from bottom, until wine is almost completely absorbed into the vegetables, 3 to 4 minutes.
Add tomatoes and beef stock, breaking up tomatoes with a wooden spoon. Crumble in porcini mushrooms (if using); nestle in short ribs, bay leaves, thyme and rosemary. Bring to a boil over medium-high; reduce heat to low and simmer, covered, until ribs are tender, 2 to 2½ hours.
Remove herb stem and bay leaves. Remove ribs to cutting board and cut into bite-sized pieces, discarding bones. Return ribs to the pot and simmer, uncovered, until tender and saucy, 20 to 30 minutes.
Cook pasta according to package directions. Toss pasta with short-rib mixture. Divide among plates and top with shaved Parmesan (if using).